Binder\Binder_Expressions.cs (18)
63var containingType = memberOpt?.ContainingType;
1499field = backingField.AsMember(method.ContainingType);
1521var implicitReceiver = field.IsStatic ? null : ThisReference(node, field.ContainingType, wasCompilerGenerated: true);
2024var declaringType = members[0].ContainingType;
2381NamedTypeSymbol declaringType = member.ContainingType;
4916NamedTypeSymbol containingType = constructor.ContainingType;
5076NamedTypeSymbol baseType = constructor.ContainingType.BaseTypeNoUseSiteDiagnostics;
5204if (resultMember is null || resultMember.ContainingType.SpecialType != SpecialType.System_Object)
5251return constructor.ContainingType is SourceNamedTypeSymbol sourceType &&
6285constructor.ContainingType.HasRequiredMembersError) // An error will be reported on the constructor if from source, or a use-site diagnostic will be reported on the use if from metadata.
6290return constructor.ContainingType.AllRequiredMembers;
6803this.IsSymbolAccessibleConditional(constructor, containingType, ref useSiteInfo, constructor.ContainingType);
8264Debug.Assert(propertySymbol.ContainingType.ExtensionParameter is not null);
8268receiver = CheckAndConvertExtensionReceiver(receiver, propertySymbol.ContainingType.ExtensionParameter, diagnostics);
9128NamedTypeSymbol type = fieldSymbol.ContainingType;
9256NamedTypeSymbol type = fieldSymbol.ContainingType;
9326if (symbol.ContainingType?.IsInterface == true)
10875return new ErrorPropertySymbol(candidate.ContainingType, propertyType, candidate.Name, candidate.IsIndexer, candidate.IsIndexedProperty);
Binder\Binder_Invocation.cs (7)
1090if (call.ReceiverOpt.Type.IsRestrictedType() && !call.Method.ContainingType.IsInterface && !TypeSymbol.Equals(call.Method.ContainingType, call.ReceiverOpt.Type, TypeCompareKind.ConsiderEverything2))
1092SymbolDistinguisher distinguisher = new SymbolDistinguisher(compilation, call.ReceiverOpt.Type, call.Method.ContainingType);
1098SymbolDistinguisher distinguisher = new SymbolDistinguisher(compilation, this.ContainingType, call.Method.ContainingType);
1298receiver = CheckAndConvertExtensionReceiver(receiver, method.ContainingType.ExtensionParameter, diagnostics);
1916TypeSymbol.Equals(containingMethod.ContainingType, method.ContainingType, TypeCompareKind.ConsiderEverything) &&
Binder\Binder_Operators.cs (14)
487Debug.Assert(method.ContainingType.ExtensionParameter is not null);
506leftConversion = CreateConversion(node, leftPlaceholder, conversion, isCast: false, conversionGroupOpt: null, InConversionGroupFlags.Unspecified, method.ContainingType.ExtensionParameter.Type, diagnostics);
1566Debug.Assert(!(signature.Method?.ContainingType?.IsInterface ?? false));
1756NamedTypeSymbol t = (NamedTypeSymbol)signature.Method.ContainingType;
1767SourceUserDefinedOperatorSymbol.IsSelfConstrainedTypeParameter((definition = signature.Method.OriginalDefinition).ReturnType.StrippedType(), definition.ContainingType));
1948NamedTypeSymbol extensionContainingType = signature.Method.OriginalDefinition.ContainingType.ContainingType;
2223if (operatorMethod.ContainingType.IsInterface &&
3593Debug.Assert(method.ContainingType.ExtensionParameter is not null);
3612operandConversion = CreateConversion(node, operandPlaceholder, conversion, isCast: false, conversionGroupOpt: null, InConversionGroupFlags.Unspecified, method.ContainingType.ExtensionParameter.Type, diagnostics);
3923var extensionParameter = op.ContainingType.ExtensionParameter;
3967return typeComparer.Equals(x.ContainingType, y.ContainingType) &&
3977int result = typeComparer.GetHashCode(method.ContainingType);
3996if (methodOpt?.ContainingType?.IsInterface == true && methodOpt.IsStatic)
Binder\Semantics\OverloadResolution\OverloadResolution.cs (26)
817else if (member.IsExtensionBlockMember() && member.ContainingType is { } extension && ConstraintsHelper.RequiresChecking(extension))
908NamedTypeSymbol containingType = member.ContainingType;
1129NamedTypeSymbol memberContainingType = member.ContainingType;
1395checkOverrideContainingType && !moreDerivedOverride.ContainingType.IsDerivedFrom(member.ContainingType, TypeCompareKind.ConsiderEverything, ref useSiteInfo) ||
1429if (!member.ContainingType.IsClassType())
1448NamedTypeSymbol memberContainingType = member.ContainingType;
1451NamedTypeSymbol otherContainingType = otherMember.ContainingType;
1488|| (result.Member.IsExtensionBlockMember() && !typeArgumentsAccessible(result.Member.ContainingType.GetMemberTypeArgumentsNoUseSiteDiagnostics(), ref useSiteInfo)))
1620if (IsLessDerivedThanAny(index: f, result.LeastOverriddenMember.ContainingType, results, ref useSiteInfo))
1645var currentType = result.LeastOverriddenMember.ContainingType;
1714var type = result.LeastOverriddenMember.ContainingType;
1736if (member.ContainingType.IsInterfaceType())
1903? memberWithPriority.ContainingType.ContainingType
1904: memberWithPriority.ContainingType;
2505if (m1.Member.ContainingType.TypeKind == TypeKind.Submission && m2.Member.ContainingType.TypeKind == TypeKind.Submission)
2605ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter;
3915Debug.Assert(member.ContainingType.ExtensionParameter is not null);
3916hasSomeRefKinds |= member.ContainingType.ExtensionParameter.RefKind != RefKind.None;
4400? method.ContainingType.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics.Concat(method.TypeArgumentsWithAnnotations)
4406var result = property.ContainingType.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics;
4438member.ContainingType,
4457if (member.ContainingType.Arity > 0)
4459var extensionTypeArguments = MethodTypeInferrer.InferTypeArgumentsFromReceiverType(member.ContainingType, args[0], _binder.Compilation, _binder.Conversions, ref useSiteInfo);
4780return container.IsExtensionBlockMember() && parameterType.ContainsTypeParameter(typeParameterContainer: container.ContainingType);
BoundTree\Constructors.cs (3)
62!fieldSymbol.ContainingType.IsValueType ||
261: this(syntax, constructor, ImmutableArray.Create<BoundExpression>(arguments), default(ImmutableArray<string?>), default(ImmutableArray<RefKind>), false, default(ImmutableArray<int>), default(BitVector), null, null, constructor.ContainingType)
265: this(syntax, constructor, arguments, default(ImmutableArray<string?>), default(ImmutableArray<RefKind>), false, default(ImmutableArray<int>), default(BitVector), null, null, constructor.ContainingType)
Compiler\MethodCompiler.cs (13)
248synthesizedEntryPoint = new SynthesizedEntryPointSymbol.AsyncForwardEntryPoint(compilation, entryPoint.ContainingType, entryPoint);
252moduleBeingBuilt.AddSynthesizedDefinition(entryPoint.ContainingType, synthesizedEntryPoint.GetCciAdapter());
283new TypeCompilationState(synthesizedEntryPoint.ContainingType, compilation, moduleBeingBuilt),
869if (!interfaces.Contains(synthesizedExplicitImpl.ExplicitInterfaceImplementations[0].ContainingType,
943if (methodSymbol.IsAbstract || methodSymbol.ContainingType?.IsDelegateType() == true)
1069Debug.Assert(!prependedDefaultValueTypeConstructorInitializer || methodSymbol.ContainingType.IsStructType());
1083((methodSymbol.ContainingType.IsStructType() && !methodSymbol.IsImplicitConstructor) ||
1512method.ContainingType,
1555method.ContainingType,
1573method.ContainingType,
2486Debug.Assert(!method.ContainingType.IsDelegateType());
2511if (ctorCall != null && !ctorCall.HasAnyErrors && ctorCall.Method != method && TypeSymbol.Equals(ctorCall.Method.ContainingType, method.ContainingType, TypeCompareKind.ConsiderEverything2))
FlowAnalysis\NullableWalker.cs (50)
704? method.ContainingType.GetMembersUnordered().SelectManyAsArray(
714foreach (var member in method.ContainingType.GetMembersUnordered())
729if (chainedConstructorEnforcesRequiredMembers && !constructorEnforcesRequiredMembers && method.ContainingType.BaseTypeNoUseSiteDiagnostics is { } baseType)
950&& (!method.ContainingType.IsValueType
954return membersToBeInitialized(method.ContainingType, includeAllMembers: true, includeCurrentTypeRequiredMembers, includeBaseRequiredMembers);
959return membersToBeInitialized(method.ContainingType, includeAllMembers: method.IncludeFieldInitializersInBody(), includeCurrentTypeRequiredMembers, includeBaseRequiredMembers);
1055foreach (var member in property.ContainingType.GetMembers(notNullMemberName))
1098foreach (var member in method.ContainingType.GetMembers(memberName))
1134enforceMemberNotNullWhenIfAffected(returnStatement.Syntax, sense: true, members: method.ContainingType.GetMembers(memberName), state: pendingReturn.StateWhenTrue, otherState: pendingReturn.StateWhenFalse);
1139enforceMemberNotNullWhenIfAffected(returnStatement.Syntax, sense: false, members: method.ContainingType.GetMembers(memberName), state: pendingReturn.StateWhenFalse, otherState: pendingReturn.StateWhenTrue);
1165foreach (var member in method.ContainingType.GetMembers(memberName))
1218var type = method.ContainingType;
1537&& method.ContainingType is SourceMemberContainerTypeSymbol containingType)
2310if ((constructor.IsStatic && containingSlot == 0 && constructor.ContainingType.Equals(symbol.ContainingType))
2770TypeSymbol possibleBase = possibleMember.ContainingType;
3847(FieldSymbol { ContainingType: { IsTupleType: true }, TupleElementIndex: var oi } originalField, FieldSymbol { ContainingType: { IsTupleType: true }, TupleElementIndex: var ui } updatedField) =>
4410var containingType = constructor?.ContainingType;
4464constructor.ContainingType.Equals(type, TypeCompareKind.AllIgnoreOptions) &&
4706var extension = symbol.OriginalDefinition.ContainingType;
5707TypeSymbol methodContainer = method.ContainingType;
5716else if (method.ContainingType.Arity != 0)
5718NamedTypeSymbol extension = method.OriginalDefinition.ContainingType;
6080var containingType = this._symbol?.ContainingType;
6852Debug.Assert(node.Method.ContainingType.ExtensionParameter is not null);
6853annotations = node.Method.ContainingType.ExtensionParameter.FlowAnalysisAnnotations;
7034ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter;
7068ParameterSymbol? extensionParameter = member.ContainingType.ExtensionParameter;
7157var wellKnownType = wellKnownMethod.ContainingType;
7178if (implementationMethod.ContainingType.IsInterface)
7209while (!baseType.Equals(implementationMethod.ContainingType) && method is object)
7211if (baseType.Equals(method.ContainingType))
7225if (method is object && baseType.Equals(method.ContainingType))
7350method.ContainingType.IsReferenceType)
7647if (member.ContainingType is { } extension && ConstraintsHelper.RequiresChecking(extension))
7974var type = method.ContainingType;
8729definition.ContainingType,
9157var symbolContainer = symbol.ContainingType;
9169Debug.Assert(symbol.ContainingType.IsDefinition);
10360var extensionBlockFormOffset = parameterOpt?.ContainingType.IsExtension is true ? 1 : 0;
10603Debug.Assert(analysis.Operator is { ParameterCount: 1 } and ({ MethodKind: MethodKind.Constructor } or { MethodKind: MethodKind.Ordinary, IsStatic: true, ContainingType.IsInterface: true }));
10605Debug.Assert(TypeSymbol.Equals(targetTypeWithNullability.Type.StrippedType(), analysis.Operator.MethodKind == MethodKind.Constructor ? analysis.Operator.ContainingType : analysis.Operator.ReturnType, TypeCompareKind.AllIgnoreOptions));
10685Debug.Assert(factory is { IsStatic: true, ContainingType.IsInterface: true });
11103ParameterSymbol? receiverParameter = isExtensionBlockMethod ? method.ContainingType.ExtensionParameter : method.Parameters[0];
11490var receiverParameter = isExtensionBlockMethod ? deconstructMethod.ContainingType.ExtensionParameter : deconstructMethod.Parameters[0];
12113var extensionParameter = property.ContainingType.ExtensionParameter;
12316if ((object)getMethod != null && getMethod.ContainingType.SpecialType == SpecialType.System_Nullable_T)
12812else if (method.ContainingType.Arity != 0)
12814NamedTypeSymbol extension = method.OriginalDefinition.ContainingType;
Lowering\DiagnosticsPass_ExpressionTrees.cs (2)
278Binder.ReportDiagnosticsIfObsolete(_diagnostics, node.EventSymbol.AssociatedField, node.Syntax, hasBaseReceiver, _containingSymbol, _containingSymbol.ContainingType, BinderFlags.None);
293Binder.ReportDiagnosticsIfObsolete(_diagnostics, node.Event, ((AssignmentExpressionSyntax)node.Syntax).Left, hasBaseReceiver, _containingSymbol, _containingSymbol.ContainingType, BinderFlags.None);
Lowering\SyntheticBoundNodeFactory.cs (9)
81_currentType = value.ContainingType;
109: this(topLevelMethod, topLevelMethod.ContainingType, node, compilationState, diagnostics, instrumentationState)
139Debug.Assert(TopLevelMethod is null || TypeSymbol.Equals(TopLevelMethod.ContainingType, CurrentType, TypeCompareKind.ConsiderEverything2));
148TypeSymbol.Equals(CurrentFunction.ContainingType, CurrentType, TypeCompareKind.ConsiderEverything2));
795constructor.ContainingType)
1341GetMethodFromHandleMethod(ctor.ContainingType, constructorInfo),
1440if (!method.ContainingType.IsValueType || !Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.MayUseCallForStructMethod(method))
1448GetMethodFromHandleMethod(method.ContainingType, systemReflectionMethodInfo),
1464GetFieldFromHandleMethod(field.ContainingType),
Symbols\Source\SourceMethodSymbolWithAttributes.cs (14)
538AttributeData.DecodeMethodImplAttribute<MethodWellKnownAttributeData, AttributeSyntax, CSharpAttributeData, AttributeLocation>(ref arguments, MessageProvider.Instance, this.ContainingType);
601CSharpAttributeData.DecodeMemberNotNullAttribute<MethodWellKnownAttributeData>(ContainingType, ref arguments);
606CSharpAttributeData.DecodeMemberNotNullWhenAttribute<MethodWellKnownAttributeData>(ContainingType, ref arguments);
628if (ContainingType.IsInterface || IsExplicitInterfaceImplementation)
740else if (this.ContainingType.IsInterfaceType())
858if (isAnyNestedMethodGeneric || ContainingType?.IsGenericType == true)
968Debug.Assert(ContainingType is object);
986if (IsGenericMethod || ContainingType.IsGenericType)
1366if (!this.IsExtensionBlockMember() && ContainingType.IsGenericType)
1505diagnostics.Add(ErrorCode.ERR_ComImportWithImpl, this.GetFirstLocation(), this, ContainingType);
1517&& !this.ContainingType.IsComImport)
1573for (NamedTypeSymbol curr = this.ContainingType; (object)curr != null; curr = curr.ContainingType)
1665return this.ContainingType.IsInterface &&
1757if (this.ContainingType.IsComImport && this.MethodKind == MethodKind.Constructor)
Symbols\TypeSymbolExtensions.cs (16)
828var containingType = current.ContainingType;
842RoslynDebug.Assert((object)current.ContainingType == null);
1089var parent1 = s1.ContainingType;
1099for (var parent2 = s2.ContainingType; (object)parent2 != null; parent2 = parent2.ContainingType)
1111var parent2 = s2.ContainingType;
1123var parent1 = s1.ContainingType;
1141for (var parent2 = s2.ContainingType; (object)parent2 != null; parent2 = parent2.ContainingType)
1164if (parent1.IsAccessibleViaInheritance(s2.ContainingType, ref useSiteInfo))
1175parent1.IsAccessibleViaInheritance(s2.ContainingType, ref useSiteInfo))
1186parent1.IsAccessibleViaInheritance(s2.ContainingType, ref useSiteInfo))
1201NamedTypeSymbol parent1 = s1.ContainingType;
1209for (var parent2 = s2.ContainingType; (object)parent2 != null; parent2 = parent2.ContainingType)
1293FindTypeParameters(method.ContainingType, result);
2237if (typeSymbol.Name != name || typeSymbol.ContainingType is object)
2256=> typeSymbol.ContainingType is null && IsContainedInNamespace(typeSymbol, "System", "Runtime", "CompilerServices");
2269=> typeSymbol.ContainingType is null && IsContainedInNamespace(typeSymbol, "System", "Diagnostics", "CodeAnalysis");