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 }
private SymbolResolver(Parser parser, TypeResolutionState typeResolutionState) { _symbolTable = new SymbolTable(parser); _parser = parser; _typeResolutionState = typeResolutionState; _symbolResolvePostActionVisitor = new SymbolResolvePostActionVisitor { _symbolResolver = this }; }
/// <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)); } }