2 writes to _lazyExtensionInfo
Microsoft.CodeAnalysis.CSharp (2)
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (2)
88Interlocked.CompareExchange(ref _lazyExtensionInfo, new ExtensionInfo(), null); // Tracked by https://github.com/dotnet/roslyn/issues/76130 : Test this code path 117Interlocked.CompareExchange(ref _lazyExtensionInfo, new ExtensionInfo(), null);
12 references to _lazyExtensionInfo
Microsoft.CodeAnalysis.CSharp (12)
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (12)
64if (_lazyExtensionInfo.LazyExtensionParameter == null && markerMethod is { Parameters: [var parameter, ..] }) 66Interlocked.CompareExchange(ref _lazyExtensionInfo.LazyExtensionParameter, new ReceiverParameterSymbol(this, parameter), null); 69return _lazyExtensionInfo.LazyExtensionParameter; 86if (_lazyExtensionInfo is null) 91if (_lazyExtensionInfo.LazyImplementationMap is null) 99Interlocked.CompareExchange(ref _lazyExtensionInfo.LazyImplementationMap, builder.ToImmutable(), null); 102return _lazyExtensionInfo.LazyImplementationMap.GetValueOrDefault(method); 110[MemberNotNull(nameof(_lazyExtensionInfo))] 115if (_lazyExtensionInfo is null) 120if (_lazyExtensionInfo.LazyExtensionMarker == (object)ErrorMethodSymbol.UnknownMethod) 122Interlocked.CompareExchange(ref _lazyExtensionInfo.LazyExtensionMarker, tryCreateExtensionMarker(), ErrorMethodSymbol.UnknownMethod); 125return _lazyExtensionInfo.LazyExtensionMarker;