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