Binder\Binder_Expressions.cs (66)
1570ContainingMember() is MethodSymbol { MethodKind: MethodKind.PropertyGet or MethodKind.PropertySet, AssociatedSymbol: PropertySymbol { IsIndexer: false } })
2195return BindPropertyAccess(node, receiver, (PropertySymbol)symbol, diagnostics, resultKind, hasErrors: isError);
6205PropertySymbol propertySymbol,
7760leftType = ((PropertySymbol)leftSymbol).Type;
8293case PropertySymbol propertySymbol:
8587resultType = ((PropertySymbol)symbolOpt).Type;
8731result = BindPropertyAccess(node, left, (PropertySymbol)symbol, diagnostics, lookupResult.Kind, hasErrors: wasError);
8892OverloadResolutionResult<PropertySymbol>? propertyResult = arity != 0 || acceptOnlyMethods ? null : resolveProperties(left, lookupResult, binder, ref actualReceiverArguments, ref useSiteInfo);
8965static OverloadResolutionResult<PropertySymbol>? resolveProperties(
8972ArrayBuilder<PropertySymbol>? properties = null;
8975if (member is PropertySymbol property)
8977properties ??= ArrayBuilder<PropertySymbol>.GetInstance();
8994OverloadResolutionResult<PropertySymbol> propertyResult,
9014PropertySymbol representativeProperty = propertyResult.PickRepresentativeMember();
9118private OverloadResolutionResult<PropertySymbol> ResolveExtensionProperties(
9120ArrayBuilder<PropertySymbol> properties,
9132var overloadResolutionResult = OverloadResolutionResult<PropertySymbol>.GetInstance();
9254if (!lookupResult.IsMultiViable || lookupResult.Symbols.All(s => s is not PropertySymbol { IsIndexer: true }))
9261var properties = ArrayBuilder<PropertySymbol>.GetInstance();
9264if (member is PropertySymbol { IsIndexer: true } property)
9400bool foundApplicable = tryLookupExtensionLengthOrCount(syntax, receiver, binder, scope, ref actualExtensionLengthOrCountArguments, out var lengthOrCountProperty, ref useSiteInfo, diagnostics);
9422[NotNullWhen(true)] out PropertySymbol? lengthOrCountProperty,
9436ArrayBuilder<PropertySymbol>? lengthCandidates = null;
9437ArrayBuilder<PropertySymbol>? countCandidates = null;
9440if (candidate is PropertySymbol property &&
9447lengthCandidates ??= ArrayBuilder<PropertySymbol>.GetInstance();
9452countCandidates ??= ArrayBuilder<PropertySymbol>.GetInstance();
9474static bool tryResolveLengthOrCount(BoundExpression receiver, ArrayBuilder<PropertySymbol>? properties, Binder binder,
9475ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo, ref AnalyzedArguments? actualArguments, out PropertySymbol? property)
9578ArrayBuilder<PropertySymbol>? filteredCandidates = null;
9721static void filterIntIndexerCandidates(ArrayBuilder<Symbol> candidates, ref ArrayBuilder<PropertySymbol>? filteredCandidates,
9726if (candidate is PropertySymbol property &&
9731filteredCandidates ??= ArrayBuilder<PropertySymbol>.GetInstance();
9759ArrayBuilder<PropertySymbol> properties,
9767OverloadResolutionResult<PropertySymbol> result = binder.ResolveExtensionProperties(receiver, properties, analyzedArguments, ref actualArguments, ref useSiteInfo);
9782MemberResolutionResult<PropertySymbol> resolutionResult = result.ValidResult;
9983PropertySymbol propertySymbol,
10278foreach (PropertySymbol property in members)
10622return BindDynamicIndexer(node, expr, arguments, ImmutableArray<PropertySymbol>.Empty, diagnostics);
10931ArrayBuilder<PropertySymbol> indexerGroup = ArrayBuilder<PropertySymbol>.GetInstance();
10935indexerGroup.Add((PropertySymbol)symbol);
10998private static readonly Func<PropertySymbol, bool> s_isIndexedPropertyWithNonOptionalArguments = property =>
11049private BoundExpression BindIndexedPropertyAccess(SyntaxNode syntax, BoundExpression receiver, ImmutableArray<PropertySymbol> propertyGroup, AnalyzedArguments arguments, BindingDiagnosticBag diagnostics)
11054var properties = ArrayBuilder<PropertySymbol>.GetInstance();
11068ImmutableArray<PropertySymbol> applicableProperties,
11111ArrayBuilder<PropertySymbol> propertyGroup,
11118OverloadResolutionResult<PropertySymbol> overloadResolutionResult = OverloadResolutionResult<PropertySymbol>.GetInstance();
11150ArrayBuilder<PropertySymbol> propertyGroup,
11152OverloadResolutionResult<PropertySymbol> overloadResolutionResult,
11160ImmutableArray<PropertySymbol> candidates = propertyGroup.ToImmutable();
11163var candidate = candidates[0];
11183PropertySymbol property = (candidates.Length == 1) ? candidates[0] : CreateErrorPropertySymbol(candidates);
11196MemberResolutionResult<PropertySymbol> resolutionResult = overloadResolutionResult.ValidResult;
11205private BoundIndexerAccess BindResolvedIndexerOrIndexedPropertyAccess(SyntaxNode syntax, BoundExpression receiver, AnalyzedArguments analyzedArguments, BindingDiagnosticBag diagnostics, ImmutableArray<string> argumentNames, ImmutableArray<RefKind> argumentRefKinds, MemberResolutionResult<PropertySymbol> resolutionResult)
11207PropertySymbol property = resolutionResult.Member;
11219this.CheckAndCoerceArguments<PropertySymbol>(syntax, resolutionResult, analyzedArguments, diagnostics, receiver, invokedAsExtensionMethod: false, out argsToParams);
11469private static bool HasValidLengthOrCountGetter(PropertySymbol property)
11481private static bool IsValidImplicitIndexIndexer(PropertySymbol property)
11500if (tryLookupLengthOrCount(syntax, receiverPlaceholder.Type, lookupResult, binder: this, out var lengthOrCountProperty, ref useSiteInfo, diagnostics))
11520[NotNullWhen(true)] out PropertySymbol? lengthOrCountProperty,
11540[NotNullWhen(true)] out PropertySymbol? valid,
11556lookupResult.Symbols[0] is PropertySymbol property &&
11572private ErrorPropertySymbol CreateErrorPropertySymbol(ImmutableArray<PropertySymbol> propertyGroup)
11575var candidate = propertyGroup[0];
FlowAnalysis\NullableWalker.cs (44)
705predicate: member => member is PropertySymbol { IsRequired: true },
708var property = (PropertySymbol)member;
783symbol = (Symbol?)(f.AssociatedSymbol as PropertySymbol) ?? f;
794case PropertySymbol p when forcePropertyAnalysis:
866case PropertySymbol { IsRequired: true }:
868case PropertySymbol:
981var prop = symbolToInitialize as PropertySymbol ?? (symbolToInitialize as FieldSymbol)?.AssociatedSymbol as PropertySymbol;
1018if (requiredMember is PropertySymbol { IsAbstract: true } abstractProperty)
1021&& isFilterableOverrideOfAbstractProperty((PropertySymbol)overridingMember))
1043var property = (PropertySymbol)requiredMember;
1068static bool isFilterableOverrideOfAbstractProperty(PropertySymbol property)
2067case PropertySymbol { Name: WellKnownMemberNames.ValuePropertyName } property when
2076case PropertySymbol:
2125var propSymbol = propAccess.PropertySymbol;
2843if (method is SourcePropertyAccessorSymbol { AssociatedSymbol: PropertySymbol prop } && (object)backingField.AssociatedSymbol == prop)
4446if (isSuitableUnionConstruction(type, constructor, out PropertySymbol? valueProperty))
4456static bool isSuitableUnionConstruction(TypeSymbol type, [NotNullWhen(true)] MethodSymbol? constructor, [NotNullWhen(true)] out PropertySymbol? valueProperty)
4489private void SetUnionValueStateFromConstructorArgument(BoundExpression argument, TypeWithState argumentTypeWithState, int containingSlot, PropertySymbol valueProperty)
4658if (symbol is PropertySymbol property && property.IsExtensionBlockMember() && !argumentResults.IsDefault)
4777if (symbol is PropertySymbol property)
4805if (symbol is PropertySymbol property)
5033var property = AnonymousTypeManager.GetAnonymousTypeProperty(anonymousType, i);
5054static BoundAnonymousPropertyDeclaration? getDeclaration(BoundAnonymousObjectCreationExpression node, PropertySymbol currentProperty, ref int currentDeclarationIndex)
6065if ((member is PropertySymbol { IsIndexedProperty: false } || member.Kind == SymbolKind.Field) &&
7545PropertySymbol? property,
11294private bool IsPropertyOutputMoreStrictThanInput(PropertySymbol property)
11315var property = left switch
11366var annotations = memberSymbol switch { PropertySymbol prop => prop.GetFlowAnalysisAnnotations(), FieldSymbol field => GetFieldAnnotations(field), _ => FlowAnalysisAnnotations.None };
12126private ReinferenceResult<PropertySymbol> ReInferAndVisitExtensionPropertyAccess(
12127BoundNode node, PropertySymbol property, BoundExpression receiver)
12147private ReinferenceResult<PropertySymbol> ReInferAndVisitExtensionPropertyAccess(
12150PropertySymbol property,
12177var property = node.PropertySymbol;
12183ReinferenceResult<PropertySymbol> reinferenceResult = ReInferAndVisitExtensionPropertyAccess(node, property, node.ReceiverOpt);
12220PropertySymbol indexer = node.Indexer;
12224ReinferenceResult<PropertySymbol> reinferrenceResult = ReInferAndVisitExtensionPropertyAccess(
12237indexer = (PropertySymbol)AsMemberOfType(receiverType, indexer);
12309PropertySymbol? unionValue = null;
12315if (member is PropertySymbol { Name: WellKnownMemberNames.HasValuePropertyName } property &&
12373var getMethod = ((PropertySymbol)member.OriginalDefinition).GetMethod;
Generated\BoundNodes.xml.Generated.cs (54)
325public BoundPropertyEqualsValue(SyntaxNode syntax, PropertySymbol property, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false)
336public PropertySymbol Property { get; }
341public BoundPropertyEqualsValue Update(PropertySymbol property, ImmutableArray<LocalSymbol> locals, BoundExpression value)
2175public BoundAwaitableInfo(SyntaxNode syntax, BoundAwaitableValuePlaceholder? awaitableInstancePlaceholder, bool isDynamic, BoundExpression? getAwaiter, PropertySymbol? isCompleted, MethodSymbol? getResult, BoundCall? runtimeAsyncAwaitCall, BoundAwaitableValuePlaceholder? runtimeAsyncAwaitCallPlaceholder, bool hasErrors = false)
2194public PropertySymbol? IsCompleted { get; }
2202public BoundAwaitableInfo Update(BoundAwaitableValuePlaceholder? awaitableInstancePlaceholder, bool isDynamic, BoundExpression? getAwaiter, PropertySymbol? isCompleted, MethodSymbol? getResult, BoundCall? runtimeAsyncAwaitCall, BoundAwaitableValuePlaceholder? runtimeAsyncAwaitCallPlaceholder)
5514public BoundDagPropertyEvaluation(SyntaxNode syntax, PropertySymbol property, bool isLengthOrCount, BoundDagTemp input, bool hasErrors = false)
5525public PropertySymbol Property { get; }
5531public BoundDagPropertyEvaluation Update(PropertySymbol property, bool isLengthOrCount, BoundDagTemp input)
5545public BoundDagIndexEvaluation(SyntaxNode syntax, PropertySymbol property, int index, BoundDagTemp input, bool hasErrors = false)
5556public PropertySymbol Property { get; }
5562public BoundDagIndexEvaluation Update(PropertySymbol property, int index, BoundDagTemp input)
6186public BoundPropertyGroup(SyntaxNode syntax, ImmutableArray<PropertySymbol> properties, BoundExpression? receiverOpt, LookupResultKind resultKind, bool hasErrors = false)
6195public ImmutableArray<PropertySymbol> Properties { get; }
6200public BoundPropertyGroup Update(ImmutableArray<PropertySymbol> properties, BoundExpression? receiverOpt, LookupResultKind resultKind)
7130public BoundAnonymousPropertyDeclaration(SyntaxNode syntax, PropertySymbol property, TypeSymbol type, bool hasErrors)
7140public BoundAnonymousPropertyDeclaration(SyntaxNode syntax, PropertySymbol property, TypeSymbol type)
7151public PropertySymbol Property { get; }
7156public BoundAnonymousPropertyDeclaration Update(PropertySymbol property, TypeSymbol type)
7454public BoundPropertyAccess(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol propertySymbol, AccessorKind autoPropertyAccessorKind, LookupResultKind resultKind, TypeSymbol type, bool hasErrors = false)
7471public PropertySymbol PropertySymbol { get; }
7478public BoundPropertyAccess Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol propertySymbol, AccessorKind autoPropertyAccessorKind, LookupResultKind resultKind, TypeSymbol type)
7528public BoundIndexerAccess(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol indexer, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, AccessorKind accessorKind, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, ImmutableArray<PropertySymbol> originalIndexersOpt, TypeSymbol type, bool hasErrors = false)
7552public PropertySymbol Indexer { get; }
7560public ImmutableArray<PropertySymbol> OriginalIndexersOpt { get; }
7565public BoundIndexerAccess Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol indexer, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, AccessorKind accessorKind, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, ImmutableArray<PropertySymbol> originalIndexersOpt, TypeSymbol type)
7669public BoundDynamicIndexerAccess(SyntaxNode syntax, BoundExpression receiver, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<PropertySymbol> applicableIndexers, TypeSymbol type, bool hasErrors = false)
7690public ImmutableArray<PropertySymbol> ApplicableIndexers { get; }
7695public BoundDynamicIndexerAccess Update(BoundExpression receiver, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<PropertySymbol> applicableIndexers, TypeSymbol type)
11116PropertySymbol property = this.VisitPropertySymbol(node.Property);
11458PropertySymbol? isCompleted = this.VisitPropertySymbol(node.IsCompleted);
12035PropertySymbol property = this.VisitPropertySymbol(node.Property);
12041PropertySymbol property = this.VisitPropertySymbol(node.Property);
12165ImmutableArray<PropertySymbol> properties = this.VisitSymbols<PropertySymbol>(node.Properties);
12334PropertySymbol property = this.VisitPropertySymbol(node.Property);
12395PropertySymbol propertySymbol = this.VisitPropertySymbol(node.PropertySymbol);
12409PropertySymbol indexer = this.VisitPropertySymbol(node.Indexer);
12410ImmutableArray<PropertySymbol> originalIndexersOpt = this.VisitSymbols<PropertySymbol>(node.OriginalIndexersOpt);
12436ImmutableArray<PropertySymbol> applicableIndexers = this.VisitSymbols<PropertySymbol>(node.ApplicableIndexers);
12733PropertySymbol property = GetUpdatedSymbol(node, node.Property);
13447PropertySymbol? isCompleted = GetUpdatedSymbol(node, node.IsCompleted);
14191PropertySymbol property = GetUpdatedSymbol(node, node.Property);
14198PropertySymbol property = GetUpdatedSymbol(node, node.Property);
14414ImmutableArray<PropertySymbol> properties = GetUpdatedArray(node, node.Properties);
14791PropertySymbol property = GetUpdatedSymbol(node, node.Property);
14951PropertySymbol propertySymbol = GetUpdatedSymbol(node, node.PropertySymbol);
14987PropertySymbol indexer = GetUpdatedSymbol(node, node.Indexer);
14988ImmutableArray<PropertySymbol> originalIndexersOpt = GetUpdatedArray(node, node.OriginalIndexersOpt);
15025ImmutableArray<PropertySymbol> applicableIndexers = GetUpdatedArray(node, node.ApplicableIndexers);
Symbols\Compilation_WellKnownMembers.cs (8)
251internal static Symbol? GetRuntimeMember(NamedTypeSymbol declaringType, in MemberDescriptor descriptor, SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> comparer, AssemblySymbol? accessWithinOpt)
257internal static Symbol? GetRuntimeMember(ImmutableArray<Symbol> members, in MemberDescriptor descriptor, SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> comparer, AssemblySymbol? accessWithinOpt)
336PropertySymbol property = (PropertySymbol)member;
1103internal class SpecialMembersSignatureComparer : SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol>
1132protected override TypeSymbol GetPropertyType(PropertySymbol property)
1178protected override ImmutableArray<ParameterSymbol> GetParameters(PropertySymbol property)
1222protected override bool IsByRefProperty(PropertySymbol property)
Symbols\NamedTypeSymbol.cs (35)
359public ImmutableArray<PropertySymbol> Indexers
367return ImmutableArray<PropertySymbol>.Empty;
372ArrayBuilder<PropertySymbol> indexers = ArrayBuilder<PropertySymbol>.GetInstance();
377Debug.Assert(((PropertySymbol)candidate).IsIndexer);
378indexers.Add((PropertySymbol)candidate);
914if (member is PropertySymbol { ParameterCount: > 0 } prop)
2401internal PropertySymbol? UnionValueProperty(ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
2408var valueProperty = (PropertySymbol?)lazyValueProperty;
2416PropertySymbol? result;
2430PropertySymbol? valueProperty = TryGetOwnOrInheritedUnionProperty(WellKnownMemberNames.ValuePropertyName, isSuitableProperty, ref useSiteInfo);
2439return (PropertySymbol?)lazyUnionData._lazyValueProperty;
2441static PropertySymbol? reportDiagnosticAndReturnProperty(NamedTypeSymbol unionTypeDefinition, PropertySymbol? valueProperty, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
2464static bool isSuitableProperty(Symbol m, [NotNullWhen(true)] out PropertySymbol? valueProperty)
2466if (m is PropertySymbol prop && hasUnionValueSignature(prop))
2476static bool hasUnionValueSignature(PropertySymbol property)
2488void addUseSiteInfoForCachedResult(PropertySymbol? valueProperty, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
2521internal PropertySymbol? UnionValuePropertyNoUseSiteDiagnostics()
2527private delegate bool IsSuitableUnionProperty(Symbol m, [NotNullWhen(true)] out PropertySymbol? member);
2529private PropertySymbol? TryGetOwnOrInheritedUnionProperty(string memberName, IsSuitableUnionProperty isSuitableUnionMember, ref CompoundUseSiteInfo<AssemblySymbol> membersProviderForDefinitionBasesUseSiteInfo)
2537PropertySymbol? member;
2546PropertySymbol? match = null;
2591static bool getMemberDeclaredInType(NamedTypeSymbol declaringType, string memberName, IsSuitableUnionProperty isSuitableUnionMember, [NotNullWhen(true)] out PropertySymbol? member)
2606internal PropertySymbol? UnionHasValueProperty()
2613return (PropertySymbol?)lazyHasValueProperty;
2616PropertySymbol? result;
2631PropertySymbol? hasValueProperty = TryGetOwnOrInheritedUnionProperty(WellKnownMemberNames.HasValuePropertyName, isSuitableProperty, ref useSiteInfo);
2637return (PropertySymbol?)lazyUnionData._lazyHasValueProperty;
2639static PropertySymbol? checkAndReturnProperty(PropertySymbol? hasValueProperty)
2649static bool isSuitableProperty(Symbol m, [NotNullWhen(true)] out PropertySymbol? hasValueProperty)
2651if (m is PropertySymbol prop && hasHasValueSignature(prop))
2661static bool hasHasValueSignature(PropertySymbol property)
Symbols\Source\SourceMemberContainerSymbol.cs (29)
1842else if (member is FieldSymbol { AssociatedSymbol: SourcePropertySymbolBase { PartialDefinitionPart: PropertySymbol definition } implementation } &&
1985var wellKnownDerivedTypesProperty = (PropertySymbol?)compilation.GetWellKnownTypeMember(WellKnownMember.System_Runtime_CompilerServices_IsClosedTypeAttribute__DerivedTypes);
2436var indexersBySignature = new Dictionary<PropertySymbol, PropertySymbol>(MemberSignatureComparer.DuplicateSourceComparer);
2448PropertySymbol indexer = (PropertySymbol)symbol;
2498PropertySymbol indexer,
2501Dictionary<PropertySymbol, PropertySymbol> indexersBySignature,
2535if (indexersBySignature.TryGetValue(indexer, out var prevIndexerBySignature))
2746var propertySymbol = (PropertySymbol)symbol;
4549PropertySymbol propertySymbol,
4634private static Location GetAccessorOrPropertyLocation(PropertySymbol propertySymbol, bool getNotSet)
4653private static bool ParametersMatchPropertyAccessor(PropertySymbol propertySymbol, bool getNotSet, ImmutableArray<ParameterSymbol> methodParams)
4824if (member is PropertySymbol property)
4864if (member is PropertySymbol { IsIndexer: true })
5133PropertySymbol? equalityContract = isRecordClass ? addEqualityContract() : null;
5159Debug.Assert(isRecordClass || !members.Any(m => m is PropertySymbol { GetMethod.IsEffectivelyReadOnly: false }));
5170Debug.Assert(positionalMembers.All(p => p is PropertySymbol or FieldSymbol));
5422ImmutableArray<PropertySymbol>.Empty);
5446else if (existingMember is PropertySymbol { IsStatic: false, GetMethod: { } } prop
5504MethodSymbol addGetHashCode(PropertySymbol? equalityContract)
5538PropertySymbol addEqualityContract()
5548ImmutableArray<PropertySymbol>.Empty);
5550PropertySymbol equalityContract;
5560equalityContract = (PropertySymbol)existingEqualityContractProperty;
5597MethodSymbol addThisEquals(PropertySymbol? equalityContract)
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (16)
334(PropertySymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_ICollection__Count)!,
339(PropertySymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_ICollection__IsSynchronized)!,
344(PropertySymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_ICollection__SyncRoot)!,
354(PropertySymbol)((MethodSymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__get_Item)!).AssociatedSymbol,
360(PropertySymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__IsFixedSize)!,
365(PropertySymbol)compilation.GetWellKnownTypeMember(WellKnownMember.System_Collections_IList__IsReadOnly)!,
412((PropertySymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IReadOnlyCollection_T__Count)!).AsMember(iReadOnlyCollectionT),
417((PropertySymbol)((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IReadOnlyList_T__get_Item)!).AssociatedSymbol).AsMember(iReadOnlyListT),
423((PropertySymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__Count)!).AsMember(iCollectionT),
428((PropertySymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__IsReadOnly)!).AsMember(iCollectionT),
458((PropertySymbol)((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IList_T__get_Item)!).AssociatedSymbol).AsMember(iListT),
532var listMember = (PropertySymbol)containingType.GetFieldTypeMember(WellKnownMember.System_Collections_Generic_List_T__Count);
717var listMember = (PropertySymbol)((MethodSymbol)containingType.GetFieldTypeMember(WellKnownMember.System_Collections_Generic_List_T__get_Item)).AssociatedSymbol;
777static void addProperty(ArrayBuilder<Symbol> builder, PropertySymbol property)