3 types derived from MetadataReference
Microsoft.CodeAnalysis (3)
557 references to MetadataReference
ConfigurationSchemaGenerator (1)
ConfigurationSchemaGenerator.Tests (30)
GeneratorTests.cs (30)
44private static readonly ImmutableArray<MetadataReference> s_defaultReferences =
46MetadataReference.CreateFromFile(typeof(Attribute).Assembly.Location),
47MetadataReference.CreateFromFile(typeof(Attribute).Assembly.Location.Replace("System.Private.CoreLib", "System.Runtime")),
48MetadataReference.CreateFromFile(typeof(Enumerable).Assembly.Location),
49MetadataReference.CreateFromFile(typeof(HttpContent).Assembly.Location)
453ImmutableArray<MetadataReference> references = [
454MetadataReference.CreateFromFile(typeof(Uri).Assembly.Location),
455MetadataReference.CreateFromFile(typeof(X509Certificate2).Assembly.Location)
684ImmutableArray<MetadataReference> references = [
685MetadataReference.CreateFromFile(typeof(TypeConverter).Assembly.Location),
686MetadataReference.CreateFromFile(typeof(TypeConverterAttribute).Assembly.Location),
687MetadataReference.CreateFromFile(typeof(Host).Assembly.Location),
688MetadataReference.CreateFromFile(typeof(IHost).Assembly.Location),
689MetadataReference.CreateFromFile(typeof(IServiceCollection).Assembly.Location),
690MetadataReference.CreateFromFile(typeof(IServiceProvider).Assembly.Location),
691MetadataReference.CreateFromFile(typeof(IConfigurationBuilder).Assembly.Location),
692MetadataReference.CreateFromFile(typeof(ConfigurationManager).Assembly.Location),
693MetadataReference.CreateFromFile(typeof(IOptionsMonitor<>).Assembly.Location),
694MetadataReference.CreateFromFile(typeof(OptionsBuilderConfigurationExtensions).Assembly.Location),
695MetadataReference.CreateFromFile(typeof(BinderOptions).Assembly.Location),
696MetadataReference.CreateFromFile(typeof(Console).Assembly.Location)
754ImmutableArray<MetadataReference> references = [
755MetadataReference.CreateFromFile(typeof(DynamicAttribute).Assembly.Location),
756MetadataReference.CreateFromFile(typeof(JsonNamingPolicy).Assembly.Location)
782ImmutableArray<MetadataReference> references =
784MetadataReference.CreateFromFile(typeof(ConfigurationKeyNameAttribute).Assembly.Location)
822ImmutableArray<MetadataReference> references =
824MetadataReference.CreateFromFile(typeof(ConfigurationKeyNameAttribute).Assembly.Location)
1356ImmutableArray<MetadataReference> references = [
1559private static string GenerateSchemaFromCode(string sourceText, IEnumerable<MetadataReference> references)
ILLink.RoslynAnalyzer (2)
Infrastructure.Tests (5)
Microsoft.Analyzers.Extra.Tests (9)
Microsoft.Analyzers.Local.Tests (5)
Microsoft.CodeAnalysis (178)
Diagnostic\CommonMessageProvider.cs (4)
210public abstract void ReportDuplicateMetadataReferenceStrong(DiagnosticBag diagnostics, Location location, MetadataReference reference, AssemblyIdentity identity, MetadataReference equivalentReference, AssemblyIdentity equivalentIdentity);
211public abstract void ReportDuplicateMetadataReferenceWeak(DiagnosticBag diagnostics, Location location, MetadataReference reference, AssemblyIdentity identity, MetadataReference equivalentReference, AssemblyIdentity equivalentIdentity);
ReferenceManager\CommonReferenceManager.Binding.cs (16)
96ImmutableArray<MetadataReference> explicitReferences,
103out ImmutableArray<MetadataReference> implicitlyResolvedReferences,
154implicitlyResolvedReferences = ImmutableArray<MetadataReference>.Empty;
212ImmutableArray<MetadataReference> explicitReferences,
220out ImmutableArray<MetadataReference> metadataReferences,
237var metadataReferencesBuilder = ArrayBuilder<MetadataReference>.GetInstance();
239Dictionary<MetadataReference, MergedAliases>? lazyAliasMap = null;
242var referenceBindingsToProcess = ArrayBuilder<(MetadataReference, ArraySegment<AssemblyReferenceBinding>)>.GetInstance();
294var existingReference = TryAddAssembly(resolvedAssemblyIdentity, resolvedReference, index, resolutionDiagnostics, Location.None, assemblyReferencesBySimpleName, supersedeLowerVersions);
323metadataReferences = ImmutableArray<MetadataReference>.Empty;
391ImmutableArray<MetadataReference> explicitReferences,
395[Out] ArrayBuilder<(MetadataReference, ArraySegment<AssemblyReferenceBinding>)> result)
407var moduleReference = explicitReferences[explicitModuleToReferenceMap[moduleIndex]];
461ImmutableArray<MetadataReference> references,
462Dictionary<MetadataReference, MergedAliases>? propertyMapOpt,
525MetadataReference requestingReference,
ReferenceManager\CommonReferenceManager.Resolution.cs (40)
50protected abstract bool CheckPropertiesConsistency(MetadataReference primaryReference, MetadataReference duplicateReference, DiagnosticBag diagnostics);
64private readonly ImmutableArray<MetadataReference> _mergedReferencesOpt;
74_mergedReferencesOpt = default(ImmutableArray<MetadataReference>);
78public ResolvedReference(int index, MetadataImageKind kind, ImmutableArray<string> aliasesOpt, ImmutableArray<string> recursiveAliasesOpt, ImmutableArray<MetadataReference> mergedReferences)
120public ImmutableArray<MetadataReference> MergedReferences
175public readonly MetadataReference? Reference;
186public ReferencedAssemblyIdentity(AssemblyIdentity identity, MetadataReference reference, int relativeAssemblyIndex)
214out ImmutableArray<MetadataReference> references,
215out IDictionary<(string, string), MetadataReference> boundReferenceDirectiveMap,
216out ImmutableArray<MetadataReference> boundReferenceDirectives,
233Dictionary<MetadataReference, MergedAliases>? lazyAliasMap = null;
236var boundReferences = new Dictionary<MetadataReference, MetadataReference>(MetadataReferenceEqualityComparer.Instance);
238ArrayBuilder<MetadataReference>? uniqueDirectiveReferences = (referenceDirectiveLocations != null) ? ArrayBuilder<MetadataReference>.GetInstance() : null;
249var boundReference = references[referenceIndex];
256MetadataReference? existingReference;
403boundReferenceDirectives = ImmutableArray<MetadataReference>.Empty;
440private static ResolvedReference GetResolvedReferenceAndFreePropertyMapEntry(MetadataReference reference, int index, MetadataImageKind kind, Dictionary<MetadataReference, MergedAliases>? propertyMapOpt)
443var mergedReferences = ImmutableArray<MetadataReference>.Empty;
571internal sealed class MetadataReferenceEqualityComparer : IEqualityComparer<MetadataReference>
575public bool Equals(MetadataReference? x, MetadataReference? y)
595public int GetHashCode(MetadataReference reference)
611private void MergeReferenceProperties(MetadataReference primaryReference, MetadataReference newReference, DiagnosticBag diagnostics, ref Dictionary<MetadataReference, MergedAliases>? lazyAliasMap)
620lazyAliasMap = new Dictionary<MetadataReference, MergedAliases>();
664private MetadataReference? TryAddAssembly(
666MetadataReference reference,
792out ImmutableArray<MetadataReference> references,
793out IDictionary<(string, string), MetadataReference> boundReferenceDirectives,
796ArrayBuilder<MetadataReference> referencesBuilder = ArrayBuilder<MetadataReference>.GetInstance();
798IDictionary<(string, string), MetadataReference>? localBoundReferenceDirectives = null;
820MetadataReference? boundReference = ResolveReferenceDirective(referenceDirective.File, referenceDirective.Location, compilation);
829localBoundReferenceDirectives = new Dictionary<(string, string), MetadataReference>();
851localBoundReferenceDirectives = SpecializedCollections.EmptyDictionary<(string, string), MetadataReference>();
ReferenceManager\CommonReferenceManager.State.cs (46)
39internal abstract IEnumerable<KeyValuePair<MetadataReference, IAssemblySymbolInternal>> GetReferencedAssemblies();
46internal abstract MetadataReference? GetMetadataReference(IAssemblySymbolInternal? assemblySymbol);
47internal abstract ImmutableArray<MetadataReference> ExplicitReferences { get; }
72internal readonly Dictionary<MetadataReference, MetadataOrDiagnostic> ObservedMetadata;
91private Dictionary<MetadataReference, int>? _lazyReferencedAssembliesMap;
101private Dictionary<MetadataReference, int>? _lazyReferencedModuleIndexMap;
107private IDictionary<(string, string), MetadataReference>? _lazyReferenceDirectiveMap;
118private ImmutableArray<MetadataReference> _lazyDirectiveReferences;
120private ImmutableArray<MetadataReference> _lazyExplicitReferences;
126/// For each such assembly identity <see cref="MetadataReferenceResolver.ResolveMissingAssembly(MetadataReference, AssemblyIdentity)"/> is called
184/// A map capturing <see cref="MetadataReference"/>s that were "merged" to a single referenced assembly
188private ImmutableDictionary<MetadataReference, ImmutableArray<MetadataReference>>? _lazyMergedAssemblyReferencesMap;
195public CommonReferenceManager(string simpleAssemblyName, AssemblyIdentityComparer identityComparer, Dictionary<MetadataReference, MetadataOrDiagnostic>? observedMetadata)
202this.ObservedMetadata = observedMetadata ?? new Dictionary<MetadataReference, MetadataOrDiagnostic>();
223internal Dictionary<MetadataReference, int> ReferencedAssembliesMap
232internal Dictionary<MetadataReference, int> ReferencedModuleIndexMap
241internal IDictionary<(string, string), MetadataReference> ReferenceDirectiveMap
250internal ImmutableArray<MetadataReference> DirectiveReferences
268internal override ImmutableArray<MetadataReference> ExplicitReferences
324internal ImmutableDictionary<MetadataReference, ImmutableArray<MetadataReference>> MergedAssemblyReferencesMap
409Dictionary<MetadataReference, int> referencedAssembliesMap,
410Dictionary<MetadataReference, int> referencedModulesMap,
411IDictionary<(string, string), MetadataReference> boundReferenceDirectiveMap,
412ImmutableArray<MetadataReference> directiveReferences,
413ImmutableArray<MetadataReference> explicitReferences,
423Dictionary<MetadataReference, ImmutableArray<MetadataReference>>? mergedAssemblyReferencesMapOpt)
444_lazyMergedAssemblyReferencesMap = mergedAssemblyReferencesMapOpt?.ToImmutableDictionary() ?? ImmutableDictionary<MetadataReference, ImmutableArray<MetadataReference>>.Empty;
461ImmutableArray<MetadataReference> references,
467out Dictionary<MetadataReference, int> referencedAssembliesMap,
468out Dictionary<MetadataReference, int> referencedModulesMap,
470out Dictionary<MetadataReference, ImmutableArray<MetadataReference>>? mergedAssemblyReferencesMapOpt)
472referencedAssembliesMap = new Dictionary<MetadataReference, int>(referenceMap.Length);
473referencedModulesMap = new Dictionary<MetadataReference, int>(referencedModuleCount);
498MetadataReference reference = references[i];
504(mergedAssemblyReferencesMapOpt ??= new Dictionary<MetadataReference, ImmutableArray<MetadataReference>>()).Add(reference, referenceMap[i].MergedReferences);
680internal sealed override IEnumerable<KeyValuePair<MetadataReference, IAssemblySymbolInternal>> GetReferencedAssemblies()
685internal TAssemblySymbol? GetReferencedAssemblySymbol(MetadataReference reference)
691internal int GetReferencedModuleIndex(MetadataReference reference)
698/// Gets the <see cref="MetadataReference"/> that corresponds to the assembly symbol.
700internal override MetadataReference? GetMetadataReference(IAssemblySymbolInternal? assemblySymbol)
Microsoft.CodeAnalysis.CSharp (50)
Errors\MessageProvider.cs (4)
205public override void ReportDuplicateMetadataReferenceStrong(DiagnosticBag diagnostics, Location location, MetadataReference reference, AssemblyIdentity identity, MetadataReference equivalentReference, AssemblyIdentity equivalentIdentity)
212public override void ReportDuplicateMetadataReferenceWeak(DiagnosticBag diagnostics, Location location, MetadataReference reference, AssemblyIdentity identity, MetadataReference equivalentReference, AssemblyIdentity equivalentIdentity)
Symbols\ReferenceManager.cs (10)
57public ReferenceManager(string simpleAssemblyName, AssemblyIdentityComparer identityComparer, Dictionary<MetadataReference, MetadataOrDiagnostic>? observedMetadata)
102protected override bool CheckPropertiesConsistency(MetadataReference primaryReference, MetadataReference duplicateReference, DiagnosticBag diagnostics)
350IDictionary<(string, string), MetadataReference>? boundReferenceDirectiveMap;
351ImmutableArray<MetadataReference> boundReferenceDirectives;
354ImmutableArray<MetadataReference> explicitReferences;
372ImmutableArray<MetadataReference> implicitlyResolvedReferences;
403Dictionary<MetadataReference, int> referencedAssembliesMap, referencedModulesMap;
405Dictionary<MetadataReference, ImmutableArray<MetadataReference>>? mergedAssemblyReferencesMapOpt;
Microsoft.CodeAnalysis.CSharp.Features (2)
Microsoft.CodeAnalysis.Features (10)
Microsoft.CodeAnalysis.Razor.Compiler (6)
Microsoft.CodeAnalysis.Rebuild (10)
Microsoft.CodeAnalysis.Scripting (27)
Microsoft.CodeAnalysis.VisualBasic (43)
Errors\MessageProvider.vb (4)
386Public Overrides Sub ReportDuplicateMetadataReferenceStrong(diagnostics As DiagnosticBag, location As Location, reference As MetadataReference, identity As AssemblyIdentity, equivalentReference As MetadataReference, equivalentIdentity As AssemblyIdentity)
393Public Overrides Sub ReportDuplicateMetadataReferenceWeak(diagnostics As DiagnosticBag, location As Location, reference As MetadataReference, identity As AssemblyIdentity, equivalentReference As MetadataReference, equivalentIdentity As AssemblyIdentity)
Symbols\ReferenceManager.vb (11)
51Public Sub New(simpleAssemblyName As String, identityComparer As AssemblyIdentityComparer, observedMetadata As Dictionary(Of MetadataReference, MetadataOrDiagnostic))
121Protected Overrides Function CheckPropertiesConsistency(primaryReference As MetadataReference, duplicateReference As MetadataReference, diagnostics As DiagnosticBag) As Boolean
299Dim boundReferenceDirectiveMap As IDictionary(Of ValueTuple(Of String, String), MetadataReference) = Nothing
300Dim boundReferenceDirectives As ImmutableArray(Of MetadataReference) = Nothing
303Dim explicitReferences As ImmutableArray(Of MetadataReference) = Nothing
321Dim implicitlyResolvedReferences As ImmutableArray(Of MetadataReference) = Nothing
351Dim referencedAssembliesMap As Dictionary(Of MetadataReference, Integer) = Nothing
352Dim referencedModulesMap As Dictionary(Of MetadataReference, Integer) = Nothing
354Dim mergedAssemblyReferencesMapOpt As Dictionary(Of MetadataReference, ImmutableArray(Of MetadataReference)) = Nothing
Microsoft.CodeAnalysis.VisualBasic.Scripting (2)
Microsoft.CodeAnalysis.Workspaces (80)
Microsoft.CodeAnalysis.Workspaces.MSBuild (17)
Microsoft.DotNet.ApiSymbolExtensions (22)
AssemblySymbolLoader.cs (20)
40private readonly Dictionary<string, MetadataReference> _loadedAssemblies;
90List<MetadataReference> assembliesToReturn = loader.LoadFromPaths(assembliesPaths, fileNames);
95foreach (MetadataReference metadataReference in assembliesToReturn)
161List<MetadataReference> assembliesToReturn = LoadFromPaths(paths, fileNames);
168MetadataReference metadataReference = assembliesToReturn[i];
190MetadataReference?[] metadataReferences = new MetadataReference[relativePaths.Count];
206if (!_loadedAssemblies.TryGetValue(name, out MetadataReference? metadataReference))
220MetadataReference? metadataReference = metadataReferences[i];
237MetadataReference metadataReference = CreateOrGetMetadataReferenceFromPath(path);
254if (!_loadedAssemblies.TryGetValue(name, out MetadataReference? metadataReference))
313MetadataReference reference = CreateOrGetMetadataReferenceFromPath(possiblePath);
344public IEnumerable<MetadataReference> MetadataReferences => _cSharpCompilation.References;
346private List<MetadataReference> LoadFromPaths(IEnumerable<string> paths, ImmutableHashSet<string>? referenceAssemblyNamesToIgnore = null)
348List<MetadataReference> result = [];
381private MetadataReference CreateOrGetMetadataReferenceFromPath(string path, ImmutableHashSet<string>? referenceAssemblyNamesToIgnore = null)
385if (!_loadedAssemblies.TryGetValue(name, out MetadataReference? metadataReference))
395private MetadataReference CreateAndAddReferenceToCompilation(string assemblyName, string rootAssemblyDisplayString, Stream fileStream, ImmutableHashSet<string>? referenceAssemblyNamesToIgnore = null, string? referenceeAssemblyName = null)
408MetadataReference metadataReference = MetadataReference.CreateFromImage(image.GetContent());
Microsoft.Gen.BuildMetadata.Unit.Tests (5)
Microsoft.Gen.ComplianceReports.Unit.Tests (5)
Microsoft.Gen.ContextualOptions.Unit.Tests (5)
Microsoft.Gen.Logging.Unit.Tests (20)
Microsoft.Gen.MetadataExtractor.Unit.Tests (5)
Microsoft.Gen.Metrics.Unit.Tests (5)
Microsoft.Gen.MetricsReports.Unit.Tests (5)
Microsoft.Maui.Controls.SourceGen (1)
Microsoft.ML.CodeAnalyzer.Tests (5)
rzc (2)