@@ -91,7 +91,6 @@ internal MethodInfo ReplaceWithExtensionImplementation(out bool wasError)
9191 var setMethod = replace ( SetMethod ) ;
9292 Symbol symbol = ReferenceEquals ( Symbol , Method ) && method is not null ? method : Symbol ;
9393
94- Debug . Assert ( SetMethod ? . IsExtensionBlockMember ( ) != true ) ;
9594 wasError = ( Method is not null && method is null ) || ( SetMethod is not null && setMethod is null ) ;
9695
9796 return new MethodInfo ( symbol , method , setMethod ) ;
@@ -634,10 +633,11 @@ private BoundIndexerAccess BindIndexerDefaultArgumentsAndParamsCollection(BoundI
634633 {
635634 var coreValueKind = valueKind & ValueKindSignificantBitsMask ;
636635 AccessorKind accessorKind = GetIndexerAccessorKind ( indexerAccess , valueKind ) ;
637- var useSetAccessor = coreValueKind == BindValueKind . Assignable && indexerAccess . Indexer . RefKind != RefKind . Ref ;
636+ PropertySymbol indexer = indexerAccess . Indexer ;
637+ var useSetAccessor = coreValueKind == BindValueKind . Assignable && indexer . RefKind != RefKind . Ref ;
638638 var accessorForDefaultArguments = useSetAccessor
639- ? indexerAccess . Indexer . GetOwnOrInheritedSetMethod ( )
640- : indexerAccess . Indexer . GetOwnOrInheritedGetMethod ( ) ;
639+ ? indexer . GetOwnOrInheritedSetMethod ( )
640+ : indexer . GetOwnOrInheritedGetMethod ( ) ;
641641 if ( accessorForDefaultArguments is not null )
642642 {
643643 var argumentsBuilder = ArrayBuilder < BoundExpression > . GetInstance ( accessorForDefaultArguments . ParameterCount ) ;
@@ -664,7 +664,7 @@ private BoundIndexerAccess BindIndexerDefaultArgumentsAndParamsCollection(BoundI
664664 }
665665
666666 BitVector defaultArguments = default ;
667- Debug . Assert ( parameters . Length == indexerAccess . Indexer . Parameters . Length ) ;
667+ Debug . Assert ( parameters . Length == indexer . Parameters . Length ) ;
668668
669669 ImmutableArray < string ? > argumentNamesOpt = indexerAccess . ArgumentNamesOpt ;
670670
@@ -690,9 +690,8 @@ private BoundIndexerAccess BindIndexerDefaultArgumentsAndParamsCollection(BoundI
690690 }
691691 }
692692
693- // Tracked by https://github.com/dotnet/roslyn/issues/78829 : caller info on extension parameter of an extension indexer will need the receiver/argument to be passed
694- Debug . Assert ( ! indexerAccess . Indexer . IsExtensionBlockMember ( ) ) ;
695- BindDefaultArguments ( indexerAccess . Syntax , parameters , extensionReceiver : null , argumentsBuilder , refKindsBuilderOpt , namesBuilder , ref argsToParams , out defaultArguments , indexerAccess . Expanded , enableCallerInfo : true , diagnostics : diagnostics ) ;
693+ BoundExpression ? extensionReceiver = indexer . IsExtensionBlockMember ( ) ? indexerAccess . ReceiverOpt : null ;
694+ BindDefaultArguments ( indexerAccess . Syntax , parameters , extensionReceiver , argumentsBuilder , refKindsBuilderOpt , namesBuilder , ref argsToParams , out defaultArguments , indexerAccess . Expanded , enableCallerInfo : true , diagnostics : diagnostics ) ;
696695
697696 if ( namesBuilder is object )
698697 {
@@ -704,7 +703,7 @@ private BoundIndexerAccess BindIndexerDefaultArgumentsAndParamsCollection(BoundI
704703 indexerAccess = indexerAccess . Update (
705704 indexerAccess . ReceiverOpt ,
706705 indexerAccess . InitialBindingReceiverIsSubjectToCloning ,
707- indexerAccess . Indexer ,
706+ indexer ,
708707 argumentsBuilder . ToImmutableAndFree ( ) ,
709708 argumentNamesOpt ,
710709 refKindsBuilderOpt ? . ToImmutableOrNull ( ) ?? default ,
0 commit comments