internal InterfaceSymbol(InterfaceTypeSyntax syntax, Symbol parent) : base(SymbolKind.Interface, syntax.Name.Text, string.Empty, parent) { SourceTree = syntax.SyntaxTree; Locations = ImmutableArray.Create(syntax.Name.SourceRange); DeclaringSyntaxNodes = ImmutableArray.Create((SyntaxNodeBase)syntax); }
public override void VisitInterfaceType(InterfaceTypeSyntax node) { var symbol = _semanticModel.GetDeclaredSymbol(node); if (symbol != null) CreateTag(node.Name, _classificationService.InterfaceIdentifier); base.VisitInterfaceType(node); }
public override void VisitInterfaceType(InterfaceTypeSyntax node) { ProcessItem(node.Name, node.Name.Text, node.GetTextSpanSafe(), NavigateToItemKind.Interface, node.Parent, Glyph.Interface); foreach (var member in node.Methods) { Visit(member); } }
public override void VisitInterfaceType(InterfaceTypeSyntax node) { var symbol = _semanticModel.GetDeclaredSymbol(node); if (symbol != null) { CreateTag(node.Name, HlslClassificationTypeNames.InterfaceIdentifier); } base.VisitInterfaceType(node); }
private void BindInterfaceDeclaration(InterfaceTypeSyntax declaration) { Func <TypeSymbol, IEnumerable <MethodDeclarationSymbol> > lazyMemberSymbols = cd => { var memberSymbols = new List <MethodDeclarationSymbol>(); foreach (var memberSyntax in declaration.Methods) { memberSymbols.Add(BindMethodDeclaration(memberSyntax, cd)); } return(memberSymbols); }; var symbol = new InterfaceSymbol(declaration, null, lazyMemberSymbols); _bindingResult.AddSymbol(declaration, symbol); _symbolSet.AddGlobal(symbol); }
private BoundInterfaceType BindInterfaceDeclaration(InterfaceTypeSyntax declaration, Symbol parent) { var interfaceSymbol = new InterfaceSymbol(declaration, parent); AddSymbol(interfaceSymbol, declaration.Name.SourceRange); var methods = new List <BoundFunction>(); var interfaceBinder = new Binder(_sharedBinderState, this); foreach (var memberSyntax in declaration.Methods) { methods.Add(interfaceBinder.Bind(memberSyntax, x => interfaceBinder.BindFunctionDeclaration(x, interfaceSymbol))); } foreach (var member in interfaceBinder.LocalSymbols.Values.SelectMany(x => x)) { interfaceSymbol.AddMember(member); } return(new BoundInterfaceType(interfaceSymbol, methods.ToImmutableArray())); }
private void BindInterfaceDeclaration(InterfaceTypeSyntax declaration) { Func<TypeSymbol, IEnumerable<MethodDeclarationSymbol>> lazyMemberSymbols = cd => { var memberSymbols = new List<MethodDeclarationSymbol>(); foreach (var memberSyntax in declaration.Methods) memberSymbols.Add(BindMethodDeclaration(memberSyntax, cd)); return memberSymbols; }; var symbol = new InterfaceSymbol(declaration, null, lazyMemberSymbols); _bindingResult.AddSymbol(declaration, symbol); _symbolSet.AddGlobal(symbol); }
private BoundInterfaceType BindInterfaceDeclaration(InterfaceTypeSyntax declaration, Symbol parent) { var interfaceSymbol = new InterfaceSymbol(declaration, parent); AddSymbol(interfaceSymbol, declaration.Name.Span); var methods = new List<BoundFunction>(); var interfaceBinder = new Binder(_sharedBinderState, this); foreach (var memberSyntax in declaration.Methods) methods.Add(interfaceBinder.Bind(memberSyntax, x => interfaceBinder.BindFunctionDeclaration(x, interfaceSymbol))); foreach (var member in interfaceBinder.LocalSymbols.Values.SelectMany(x => x)) interfaceSymbol.AddMember(member); return new BoundInterfaceType(interfaceSymbol, methods.ToImmutableArray()); }
internal InterfaceSymbol(InterfaceTypeSyntax syntax, Symbol parent) : base(SymbolKind.Interface, syntax.Name.Text, string.Empty, parent) { }
public InterfaceSymbol GetDeclaredSymbol(InterfaceTypeSyntax syntax) { var result = _bindingResult.GetBoundNode(syntax) as BoundInterfaceType; return result?.InterfaceSymbol; }
public override IEnumerable <EditorNavigationTarget> VisitInterfaceType(InterfaceTypeSyntax node) { yield return(CreateTypeTarget(node.Name, node.GetTextSpanSafe(), Glyph.Interface, node.Methods)); }
internal InterfaceSymbol(InterfaceTypeSyntax syntax, Symbol parent, Func<TypeSymbol, IEnumerable<MethodDeclarationSymbol>> lazyMethods) : base(SymbolKind.Interface, syntax.Name.Text, string.Empty, parent, lazyMethods) { }
public override void VisitInterfaceType(InterfaceTypeSyntax node) { CreateTag(node.Name, _classificationService.ClassIdentifier); base.VisitInterfaceType(node); }
internal InterfaceSymbol(InterfaceTypeSyntax syntax, Symbol parent, Func <TypeSymbol, IEnumerable <MethodDeclarationSymbol> > lazyMethods) : base(SymbolKind.Interface, syntax.Name.Text, string.Empty, parent, lazyMethods) { }
public virtual void VisitInterfaceType(InterfaceTypeSyntax node) { DefaultVisit(node); }
public InterfaceSymbol GetDeclaredSymbol(InterfaceTypeSyntax syntax) { var result = _bindingResult.GetBoundNode(syntax) as BoundInterfaceType; return(result?.InterfaceSymbol); }
public override void VisitInterfaceType(InterfaceTypeSyntax node) { ProcessItem(node.Name, node.Name.Text, node.GetTextSpanSafe(), NavigateToItemKind.Interface, node.Parent, Glyph.Interface); foreach (var member in node.Methods) Visit(member); }