public override SymbolKeyResolution Resolve(Compilation compilation, bool ignoreAssemblyKey, CancellationToken cancellationToken)
            {
                var containerInfo = containerKey.Resolve(compilation, ignoreAssemblyKey, cancellationToken);
                var events        = GetAllSymbols <INamedTypeSymbol>(containerInfo).SelectMany(t => t.GetMembers(this.metadataName)).OfType <IEventSymbol>();

                return(CreateSymbolInfo(events));
            }
            public override SymbolKeyResolution Resolve(Compilation compilation, bool ignoreAssemblyKey, CancellationToken cancellationToken)
            {
                var container      = containerKey.Resolve(compilation, ignoreAssemblyKey, cancellationToken);
                var typeParameters = GetAllSymbols <IMethodSymbol>(container).SelectMany(s => Resolve(compilation, s));

                return(CreateSymbolInfo(typeParameters));
            }
Exemple #3
0
            public override SymbolKeyResolution Resolve(Compilation compilation, bool ignoreAssemblyKey, CancellationToken cancellationToken)
            {
                var containerInfo = _containerKey.Resolve(compilation, ignoreAssemblyKey, cancellationToken);
                var types         = GetAllSymbols <INamespaceOrTypeSymbol>(containerInfo).SelectMany(s => Resolve(compilation, s, ignoreAssemblyKey));

                return(CreateSymbolInfo(types));
            }
            public override SymbolKeyResolution Resolve(Compilation compilation, bool ignoreAssemblyKey, CancellationToken cancellationToken)
            {
                var container = _containerKey.Resolve(compilation, ignoreAssemblyKey, cancellationToken);

                var methods = GetAllSymbols<INamedTypeSymbol>(container).SelectMany(t => Resolve(compilation, t, ignoreAssemblyKey, cancellationToken));
                return CreateSymbolInfo(methods);
            }
            public override SymbolKeyResolution Resolve(Compilation compilation, bool ignoreAssemblyKey, CancellationToken cancellationToken)
            {
                var container = containerKey.Resolve(compilation, ignoreAssemblyKey, cancellationToken);

                // Don't check ModuleIds for equality because in practice, no one uses them,
                // and there is no way to set netmodule name programmatically using Roslyn
                var modules = GetAllSymbols <IAssemblySymbol>(container).SelectMany(a => a.Modules);

                return(CreateSymbolInfo(modules));
            }
            public override SymbolKeyResolution Resolve(Compilation compilation, bool ignoreAssemblyKey, CancellationToken cancellationToken)
            {
                if (ReferenceEquals(this.containerKeyOpt, null))
                {
                    return(new SymbolKeyResolution(compilation.GlobalNamespace));
                }

                var container  = containerKeyOpt.Resolve(compilation, ignoreAssemblyKey, cancellationToken);
                var namespaces = GetAllSymbols(container).SelectMany(s => Resolve(compilation, s, ignoreAssemblyKey));

                return(CreateSymbolInfo(namespaces));
            }
Exemple #7
0
            public override SymbolKeyResolution Resolve(Compilation compilation, bool ignoreAssemblyKey, CancellationToken cancellationToken)
            {
                var container  = _containerKey.Resolve(compilation, ignoreAssemblyKey, cancellationToken);
                var namedTypes = GetAllSymbols <INamedTypeSymbol>(container);
                var properties = namedTypes
                                 .SelectMany(t => t.GetMembers())
                                 .OfType <IPropertySymbol>()
                                 .Where(p => p.Parameters.Length == _refKinds.Length && p.MetadataName == _metadataName && p.IsIndexer == _isIndexer);

                var comparisonOptions  = new ComparisonOptions(compilation.IsCaseSensitive, ignoreAssemblyKey, compareMethodTypeParametersByName: true);
                var matchingProperties = properties.Where(p =>
                                                          ParametersMatch(comparisonOptions, compilation, p.OriginalDefinition.Parameters, _refKinds, _originalParameterTypeKeys, cancellationToken));

                return(CreateSymbolInfo(matchingProperties));
            }
            public override SymbolKeyResolution Resolve(Compilation compilation, bool ignoreAssemblyKey = false, CancellationToken cancellationToken = default(CancellationToken))
            {
                var containingSymbol = containingKey.Resolve(compilation, ignoreAssemblyKey, cancellationToken).Symbol;

                if (containingSymbol == null)
                {
                    return(new SymbolKeyResolution());
                }

                foreach (var symbol in EnumerateSymbols(compilation, containingSymbol, localName, cancellationToken))
                {
                    if (symbol.Item2 == ordinal)
                    {
                        return(new SymbolKeyResolution(symbol.Item1));
                    }
                }

                return(new SymbolKeyResolution());
            }
            public override SymbolKeyResolution Resolve(Compilation compilation, bool ignoreAssemblyKey, CancellationToken cancellationToken)
            {
                var elementInfo = elementKey.Resolve(compilation, ignoreAssemblyKey, cancellationToken);

                return(CreateSymbolInfo(GetAllSymbols <ITypeSymbol>(elementInfo).Select(s => compilation.CreateArrayTypeSymbol(s, rank))));
            }
Exemple #10
0
            public override SymbolKeyResolution Resolve(Compilation compilation, bool ignoreAssemblyKey, CancellationToken cancellationToken)
            {
                var elementInfo = pointedAtKey.Resolve(compilation, ignoreAssemblyKey, cancellationToken);

                return(CreateSymbolInfo(GetAllSymbols <ITypeSymbol>(elementInfo).Select(compilation.CreatePointerTypeSymbol)));
            }
            private IEnumerable <INamedTypeSymbol> ResolveErrorTypeWithContainer(Compilation compilation, bool ignoreAssemblyKey)
            {
                var containerInfo = containerKey.Resolve(compilation, ignoreAssemblyKey);

                return(GetAllSymbols <INamespaceOrTypeSymbol>(containerInfo).Select(s => Resolve(compilation, s)));
            }