2 writes to _lazyExtensionInfo
Microsoft.CodeAnalysis.CSharp (2)
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (2)
101
Interlocked.CompareExchange(ref
_lazyExtensionInfo
, new ExtensionInfo(), null); // Tracked by https://github.com/dotnet/roslyn/issues/76130 : Test this code path
130
Interlocked.CompareExchange(ref
_lazyExtensionInfo
, new ExtensionInfo(), null);
12 references to _lazyExtensionInfo
Microsoft.CodeAnalysis.CSharp (12)
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (12)
77
if (
_lazyExtensionInfo
.LazyExtensionParameter == null && markerMethod is { Parameters: [var parameter, ..] })
79
Interlocked.CompareExchange(ref
_lazyExtensionInfo
.LazyExtensionParameter, new ReceiverParameterSymbol(this, parameter), null);
82
return
_lazyExtensionInfo
.LazyExtensionParameter;
99
if (
_lazyExtensionInfo
is null)
104
if (
_lazyExtensionInfo
.LazyImplementationMap is null)
112
Interlocked.CompareExchange(ref
_lazyExtensionInfo
.LazyImplementationMap, builder.ToImmutable(), null);
115
return
_lazyExtensionInfo
.LazyImplementationMap.GetValueOrDefault(method);
123
[MemberNotNull(nameof(
_lazyExtensionInfo
))]
128
if (
_lazyExtensionInfo
is null)
133
if (
_lazyExtensionInfo
.LazyExtensionMarker == (object)ErrorMethodSymbol.UnknownMethod)
135
Interlocked.CompareExchange(ref
_lazyExtensionInfo
.LazyExtensionMarker, tryCreateExtensionMarker(), ErrorMethodSymbol.UnknownMethod);
138
return
_lazyExtensionInfo
.LazyExtensionMarker;