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);
        }
Example #3
0
 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);
        }
Example #5
0
        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()));
        }
Example #7
0
        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);
        }
Example #8
0
        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());
        }
Example #9
0
 internal InterfaceSymbol(InterfaceTypeSyntax syntax, Symbol parent)
     : base(SymbolKind.Interface, syntax.Name.Text, string.Empty, parent)
 {
 }
Example #10
0
 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));
 }
Example #12
0
 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);
        }
Example #14
0
 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);
 }
Example #16
0
        public override void VisitInterfaceType(InterfaceTypeSyntax node)
        {
            CreateTag(node.Name, _classificationService.ClassIdentifier);

            base.VisitInterfaceType(node);
        }
Example #17
0
 internal InterfaceSymbol(InterfaceTypeSyntax syntax, Symbol parent)
     : base(SymbolKind.Interface, syntax.Name.Text, string.Empty, parent)
 {
 }
Example #18
0
        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);
 }
Example #20
0
 public virtual void VisitInterfaceType(InterfaceTypeSyntax node)
 {
     DefaultVisit(node);
 }