示例#1
0
        internal static IEnumerable <Assembly> GetAssemblies(TypeResolutionState typeResolutionState, TypeName typeName)
        {
#if CORECLR
            string typeNameToSearch = typeResolutionState.GetAlternateTypeName(typeName.Name) ?? typeName.Name;
            return(GetAssemblies(typeNameToSearch));
#else
            return(GetAssemblies());
#endif
        }
示例#2
0
 private SymbolResolver(Parser parser, TypeResolutionState typeResolutionState)
 {
     _symbolTable = new SymbolTable(parser);
     _parser = parser;
     _typeResolutionState = typeResolutionState;
     _symbolResolvePostActionVisitor = new SymbolResolvePostActionVisitor { _symbolResolver = this };
 }
示例#3
0
 /// <summary>
 /// </summary>
 /// <param name="usingStatements"></param>
 /// <param name="allUsingsAreNamespaces">This flag allow us some optimizations, if usings don't have assemblies and modules.</param>
 /// <param name="exprs"></param>
 internal static void GenerateLoadUsings(IEnumerable<UsingStatementAst> usingStatements, bool allUsingsAreNamespaces, List<Expression> exprs)
 {
     TypeResolutionState trs;
     Dictionary<string, TypeDefinitionAst> typesToAdd = null;
     if (allUsingsAreNamespaces)
     {
         trs = new TypeResolutionState(TypeOps.GetNamespacesForTypeResolutionState(usingStatements), null);
     }
     else
     {
         Assembly[] assemblies;
         typesToAdd = LoadUsingsImpl(usingStatements, out assemblies);
         trs = new TypeResolutionState(
             TypeOps.GetNamespacesForTypeResolutionState(usingStatements),
             assemblies);
     }
     exprs.Add(Expression.Call(CachedReflectionInfo.TypeOps_SetCurrentTypeResolutionState,
             Expression.Constant(trs), _executionContextParameter));
     if (typesToAdd != null && typesToAdd.Count > 0)
     {
         exprs.Add(Expression.Call(CachedReflectionInfo.TypeOps_AddPowerShellTypesToTheScope,
             Expression.Constant(typesToAdd), _executionContextParameter));
     }
 }