public static ImmutableMap <SyntaxNode, Binder> BuildMap(MethodSymbol method, SyntaxNode syntax, Binder enclosing, ImmutableMap <SyntaxNode, Binder> map = null) { var builder = new BinderMapBuilder(method, map); builder.Visit(syntax, enclosing); return(builder.map); }
public static ImmutableMap <SyntaxNode, Binder> BuildGlobalStatementsMap(MethodSymbol method, CompilationUnitSyntax compilationUnitSyntax, Binder enclosing) { Debug.Assert(method.ContainingType.IsScriptClass && method.MethodKind == MethodKind.Constructor); var builder = new BinderMapBuilder(method, null); // This loop is inlined (instead of overriding VisitCompilationUnit) because // it is not a general implementation of building a map for a compilation unit - // it is specific to the global statement case. foreach (MemberDeclarationSyntax member in compilationUnitSyntax.Members) { if (member.Kind == SyntaxKind.GlobalStatement) { builder.Visit(member, enclosing); } } return(builder.map); }