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