1 override of IsExtension
Microsoft.CodeAnalysis.CSharp (1)
Symbols\Metadata\PE\PENamedTypeSymbol.cs (1)
2017
public override bool
IsExtension
=> _lazyUncommonProperties?.extensionInfo is { };
152 references to IsExtension
Microsoft.CodeAnalysis.CSharp (119)
Binder\Binder_Crefs.cs (2)
295
if (!nested.
IsExtension
379
NamedTypeSymbol? enclosingType = containingType.
IsExtension
? containingType.ContainingType : containingType;
Binder\Binder_Expressions.cs (2)
52
if (memberOpt is { ContainingSymbol: NamedTypeSymbol {
IsExtension
: true } })
508
|| this.ContainingMemberOrLambda is NamedTypeSymbol {
IsExtension
: true });
Binder\Binder_NameConflicts.cs (2)
70
if (tp.ContainingSymbol is NamedTypeSymbol {
IsExtension
: true })
90
if (parameters[0] is { ContainingSymbol: NamedTypeSymbol {
IsExtension
: true }, Name: var receiverName } && receiverName == name)
Binder\Binder_Statements.cs (1)
3879
if (containingType.IsStructType() || containingType.IsEnumType() || containingType.
IsExtension
)
Binder\Binder_Symbols.cs (1)
353
&& containing is not NamedTypeSymbol {
IsExtension
: true })
Binder\BinderFactory.BinderFactoryVisitor.cs (2)
785
if (typeSymbol.
IsExtension
)
1255
Debug.Assert(type.
IsExtension
);
Binder\InMethodBinder.cs (1)
296
if (parameter.ContainingSymbol is NamedTypeSymbol {
IsExtension
: true })
Binder\Semantics\AccessCheck.cs (2)
332
containingType.
IsExtension
&& containingType.ContainingType is { } extensionEnclosingType ? extensionEnclosingType : containingType,
699
return containingType.
IsExtension
? ErrorCode.ERR_ProtectedInExtension
Binder\Semantics\OverloadResolution\OverloadResolution.cs (1)
2679
bool isExtensionParameterOfStaticExtensionMember = parameter is { ContainingSymbol: NamedTypeSymbol {
IsExtension
: true, ExtensionParameter: var extensionParameter } }
Binder\WithClassTypeParametersBinder.cs (1)
70
if (_namedType.
IsExtension
)
Compilation\SyntaxTreeSemanticModel.cs (1)
1402
if (symbol is NamedTypeSymbol {
IsExtension
: true } && symbol.HasLocationContainedWithin(this.SyntaxTree, declarationSpan, out var wasZeroWidthMatch))
Compiler\ClsComplianceChecker.cs (1)
532
System.Diagnostics.Debug.Assert((object)baseType != null || symbol.SpecialType == SpecialType.System_Object || symbol.
IsExtension
, "Only object or extension has no base.");
Compiler\DocumentationCommentCompiler.cs (3)
227
if (symbol.
IsExtension
&& (SourceNamedTypeSymbol)symbol.ContainingType is { } containingType)
245
if (member is NamedTypeSymbol {
IsExtension
: true })
308
Debug.Assert(extension.
IsExtension
);
Compiler\MethodBodySynthesizer.cs (2)
280
field.IsStatic || field.ContainingSymbol is NamedTypeSymbol {
IsExtension
: true } ? null : new BoundThisReference(syntax, accessor.ThisParameter.Type),
376
BoundThisReference fieldReceiver = eventSymbol.IsStatic || eventSymbol.ContainingSymbol is NamedTypeSymbol {
IsExtension
: true } ?
Compiler\MethodCompiler.cs (2)
502
if (containingType.
IsExtension
&& ((SourceNamedTypeSymbol)containingType).TryGetOrCreateExtensionMarker() is { } marker)
554
if (containingType.
IsExtension
&&
DocumentationComments\DocumentationCommentIDVisitor.cs (1)
73
if (symbol.
IsExtension
)
DocumentationComments\DocumentationCommentIDVisitor.PartVisitor.cs (2)
179
if ((object)containingSymbol != null && (containingSymbol.Name.Length != 0 || containingSymbol is NamedTypeSymbol {
IsExtension
: true }))
185
builder.Append(symbol.
IsExtension
? symbol.ExtensionGroupingName : symbol.Name);
Emitter\Model\MethodSymbolAdapter.cs (4)
418
return !AdaptedMethodSymbol.ContainingType.
IsExtension
&& AdaptedMethodSymbol.IsExternal;
445
return !AdaptedMethodSymbol.ContainingType.
IsExtension
&& AdaptedMethodSymbol.GetDllImportData() != null;
454
return AdaptedMethodSymbol.ContainingType.
IsExtension
? null : AdaptedMethodSymbol.GetDllImportData();
461
return AdaptedMethodSymbol.ContainingType.
IsExtension
? default : AdaptedMethodSymbol.ImplementationAttributes;
Emitter\Model\NamedTypeSymbolAdapter.cs (3)
293
if (AdaptedNamedTypeSymbol.IsScriptClass || AdaptedNamedTypeSymbol.
IsExtension
)
660
if (type.
IsExtension
)
798
if (AdaptedNamedTypeSymbol.
IsExtension
)
Emitter\Model\PEModuleBuilder.cs (9)
387
if (!((NamedTypeSymbol)member).
IsExtension
)
607
if (namespaceOrType is NamedTypeSymbol {
IsExtension
: true })
639
if (!type.
IsExtension
)
859
if (nested.Any(n => n.
IsExtension
))
930
if (nested[i].
IsExtension
)
2270
Debug.Assert(container is not NamedTypeSymbol {
IsExtension
: true } || nestedType.GetInternalSymbol() is FixedFieldImplementationType);
2276
Debug.Assert(container is not NamedTypeSymbol {
IsExtension
: true });
2282
Debug.Assert(container is not NamedTypeSymbol {
IsExtension
: true });
2288
Debug.Assert(container is not NamedTypeSymbol {
IsExtension
: true });
FlowAnalysis\NullableWalker.cs (1)
9914
var newExtensionFormOffset = parameterOpt?.ContainingType.
IsExtension
is true ? 1 : 0;
Lowering\LocalRewriter\DelegateCacheContainer.cs (1)
35
(owner.ContainingType is {
IsExtension
: true } extensionType ? extensionType.TypeParameters : []).Concat(
Lowering\LocalRewriter\DelegateCacheRewriter.cs (2)
151
if (enclosingSymbol is NamedTypeSymbol {
IsExtension
: true, Arity: > 0 })
192
if (enclosingSymbol is NamedTypeSymbol {
IsExtension
: true, Arity: > 0 } extensionType &&
Lowering\LocalRewriter\DynamicSiteContainer.cs (2)
19
(topLevelMethod.ContainingSymbol is NamedTypeSymbol {
IsExtension
: true } extensionType ? extensionType.TypeParameters : []).Concat(
31
if (containingSymbol is NamedTypeSymbol {
IsExtension
: true })
Lowering\LocalRewriter\LocalRewriter_Call.cs (1)
57
Debug.Assert(!_factory.CurrentType.
IsExtension
); // When binding a simple name for a call, you cannot get a member inside an extension type
Symbols\Extensions\SynthesizedExtensionMarker.cs (1)
30
Debug.Assert(extensionType.
IsExtension
);
Symbols\MemberSymbolExtensions.cs (2)
98
return member is { ContainingSymbol: NamedTypeSymbol {
IsExtension
: true }, OriginalDefinition: not SynthesizedExtensionMarker };
103
return member.ContainingSymbol is NamedTypeSymbol {
IsExtension
: true };
Symbols\Metadata\PE\PEParameterSymbol.cs (1)
901
if (ContainingSymbol is { IsStatic: false, ContainingSymbol: NamedTypeSymbol {
IsExtension
: true, ExtensionParameter.Name: var extensionParameterName } }
Symbols\NamedTypeSymbol.cs (2)
419
if (nestedType is not {
IsExtension
: true, ExtensionParameter: { } extensionParameter }
628
/// Note: this may be null even if <see cref="
IsExtension
"/> is true, in error cases.
Symbols\PublicModel\NamedTypeSymbol.cs (1)
210
bool isExtension = UnderlyingNamedTypeSymbol.
IsExtension
;
Symbols\PublicModel\TypeSymbol.cs (2)
31
if (UnderlyingTypeSymbol is Symbols.NamedTypeSymbol {
IsExtension
: true })
160
bool ITypeSymbol.IsExtension => UnderlyingTypeSymbol is Symbols.NamedTypeSymbol {
IsExtension
: true };
Symbols\Retargeting\RetargetingNamedTypeSymbol.cs (1)
118
Debug.Assert(this.
IsExtension
);
Symbols\Source\ExtensionGroupingInfo.cs (11)
35
if (!type.
IsExtension
)
77
if (!type1.
IsExtension
)
85
if (!type2.
IsExtension
)
115
Debug.Assert(extension.
IsExtension
);
175
Debug.Assert(extension.
IsExtension
);
196
Debug.Assert(extension.
IsExtension
);
216
Debug.Assert(extension1.
IsExtension
);
217
Debug.Assert(extension2.
IsExtension
);
251
Debug.Assert(extension1.
IsExtension
);
252
Debug.Assert(extension2.
IsExtension
);
463
Debug.Assert(extension.
IsExtension
);
Symbols\Source\SourceDestructorSymbol.cs (1)
32
if (syntax.Identifier.ValueText != containingType.Name && !containingType.
IsExtension
)
Symbols\Source\SourceMemberContainerSymbol.cs (11)
615
if (this.
IsExtension
)
648
if (this.
IsExtension
)
1353
if (!t.
IsExtension
)
1852
else if (
IsExtension
)
1952
if (
IsExtension
)
2385
if (
IsExtension
)
2419
IEnumerable<IGrouping<string, NamedTypeSymbol>> extensionsByReceiverType = GetTypeMembers("").Where(static t => t.
IsExtension
).GroupBy(static t => ((SourceNamedTypeSymbol)t).ExtensionGroupingName!);
2527
if (this.
IsExtension
)
2863
Debug.Assert(!this.
IsExtension
);
3933
if (!this.
IsExtension
)
5869
if (
IsExtension
)
Symbols\Source\SourceMemberMethodSymbol.cs (1)
397
if (containingType is {
IsExtension
: true, ContainingType: { } enclosing })
Symbols\Source\SourceNamedTypeSymbol.cs (5)
1417
if (this.
IsExtension
)
1829
if (
IsExtension
)
1843
return
IsExtension
2004
if (
IsExtension
&& ContainingType?.
IsExtension
!= true)
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (8)
43
Debug.Assert(this.
IsExtension
&& this.IsDefinition);
266
if (typeParameter.ContainingType.
IsExtension
)
369
Debug.Assert(this.
IsExtension
&& this.IsDefinition);
1015
if (!
IsExtension
)
1033
Debug.Assert(this.
IsExtension
);
1066
Debug.Assert(
IsExtension
);
1102
if (!
IsExtension
)
1125
if (!
IsExtension
)
Symbols\Source\SourceNamespaceSymbol.cs (1)
316
if (nts?.
IsExtension
== true) continue;
Symbols\Source\SourceOrdinaryMethodSymbol.cs (3)
251
else if (ContainingType is {
IsExtension
: true, ExtensionParameter.Name: "" } && !IsStatic)
728
bool isExtension = containingType.
IsExtension
;
1178
if (tpEnclosing.ContainingSymbol is NamedTypeSymbol {
IsExtension
: true })
Symbols\Source\SourceParameterSymbol.cs (1)
111
Debug.Assert((owner.Kind == SymbolKind.Method) || (owner.Kind == SymbolKind.Property) || owner is NamedTypeSymbol {
IsExtension
: true });
Symbols\Source\SourcePropertyAccessorSymbol.cs (1)
558
else if (ContainingType.
IsExtension
&& IsInitOnly)
Symbols\Source\SourcePropertySymbol.cs (3)
383
bool isExtension = containingType.
IsExtension
;
591
if (containingType is {
IsExtension
: true, ContainingType: { } enclosing })
674
if (containingTypeForFileTypeCheck is {
IsExtension
: true, ContainingType: { } enclosing })
Symbols\Source\SourcePropertySymbolBase.cs (1)
1143
else if (ContainingType is {
IsExtension
: true, ExtensionParameter.Name: "" } && !IsStatic)
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (8)
81
if (this.ContainingType is {
IsExtension
: true, ExtensionParameter.Type.IsStatic: true })
178
bool inExtension = containingType.
IsExtension
;
385
if (ContainingType is {
IsExtension
: true, ExtensionParameter: { Type.IsStatic: false } extensionParameter } && !IsStatic &&
806
(ContainingType.
IsExtension
?
875
(ContainingType.
IsExtension
?
895
if (ContainingType is {
IsExtension
: true, ExtensionParameter.Type: var extendedType })
950
(ContainingType.
IsExtension
? ErrorCode.ERR_BadExtensionShiftOperatorSignature : ErrorCode.ERR_BadShiftOperatorSignature),
972
(ContainingType.
IsExtension
? ErrorCode.ERR_BadExtensionBinaryOperatorSignature : ErrorCode.ERR_BadBinaryOperatorSignature),
Symbols\SubstitutedNamedTypeSymbol.cs (1)
509
if (!this.
IsExtension
)
Symbols\Symbol.cs (2)
651
if (namedType.IsSubmissionClass || namedType.
IsExtension
)
1761
&& variable is ParameterSymbol { ContainingSymbol: NamedTypeSymbol {
IsExtension
: true } })
Symbols\SymbolExtensions.cs (1)
825
return parameter.ContainingSymbol is NamedTypeSymbol {
IsExtension
: true };
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (33)
Semantics\ExtensionTests.cs (5)
4806
Assert.False(e.
IsExtension
);
50117
Assert.False(comp.GlobalNamespace.GetTypeMember("E").GetTypeMembers().Single().
IsExtension
);
51035
Debug.Assert(extension.
IsExtension
);
51044
Debug.Assert(extension.
IsExtension
);
51093
Assert.True(extension.
IsExtension
);
Semantics\ExtensionTests2.cs (28)
3434
Assert.False(extension.
IsExtension
);
3980
Assert.False(comp.GetTypeByMetadataName("E").GetTypeMembers().Single().
IsExtension
);
4038
Assert.False(comp.GetTypeByMetadataName("E").GetTypeMembers().Single().
IsExtension
);
4094
Assert.False(comp.GetTypeByMetadataName("E").GetTypeMembers().Single().
IsExtension
);
4155
Assert.False(comp.GetTypeByMetadataName("E").GetTypeMembers().Single().
IsExtension
);
32582
Assert.True(extension.
IsExtension
);
32615
Assert.True(extension.
IsExtension
);
32649
Assert.True(extension.
IsExtension
);
32682
Assert.True(extension.
IsExtension
);
32717
Assert.True(extension.
IsExtension
);
32752
Assert.True(extension.
IsExtension
);
32786
Assert.True(extension.
IsExtension
);
32823
Assert.True(extension.
IsExtension
);
32859
Assert.True(extension.
IsExtension
);
32893
Assert.True(extension.
IsExtension
);
32937
Assert.True(extension.
IsExtension
);
32973
Assert.True(extension.
IsExtension
);
33086
Assert.True(extension.
IsExtension
);
33120
Assert.True(extension.
IsExtension
);
33157
Assert.True(extension.
IsExtension
);
33198
Assert.True(extension.
IsExtension
);
33235
Assert.True(extension.
IsExtension
);
33357
Assert.True(extension.
IsExtension
);
33395
Assert.True(extension.
IsExtension
);
34043
Assert.False(e.
IsExtension
);
34127
Assert.False(e.
IsExtension
);
34228
Assert.False(e.
IsExtension
);
34889
Assert.True(extension.
IsExtension
);