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)); }
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)); }
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)))); }
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))); }