@@ -78,10 +78,7 @@ public static ImmutableArray<FunctionPointerParameterSymbol> MakeFunctionPointer
7878 SyntaxToken paramsKeyword , SyntaxToken thisKeyword , bool addRefReadOnlyModifier ,
7979 DiagnosticBag diagnostics ) =>
8080 {
81-
82- var customModifiers = addRefReadOnlyModifier && refKind == RefKind . In ?
83- CreateInModifiers ( binder , diagnostics , syntax ) :
84- ImmutableArray < CustomModifier > . Empty ;
81+ ImmutableArray < CustomModifier > customModifiers = CreateInModifiers ( refKind , addRefReadOnlyModifier , binder , diagnostics , syntax ) ;
8582
8683 if ( parameterType . IsVoidType ( ) )
8784 {
@@ -689,10 +686,17 @@ private static RefKind GetModifiers(SyntaxTokenList modifiers, out SyntaxToken r
689686 return refKind ;
690687 }
691688
692- internal static ImmutableArray < CustomModifier > CreateInModifiers ( Binder binder , DiagnosticBag diagnostics , SyntaxNode syntax )
689+ internal static ImmutableArray < CustomModifier > CreateInModifiers ( RefKind refKind , bool addRefReadOnlyModifier , Binder binder , DiagnosticBag diagnostics , SyntaxNode syntax )
693690 {
694- var modifierType = binder . GetWellKnownType ( WellKnownType . System_Runtime_InteropServices_InAttribute , diagnostics , syntax ) ;
695- return ImmutableArray . Create ( CSharpCustomModifier . CreateRequired ( modifierType ) ) ;
691+ if ( addRefReadOnlyModifier && refKind == RefKind . In )
692+ {
693+ var modifierType = binder . GetWellKnownType ( WellKnownType . System_Runtime_InteropServices_InAttribute , diagnostics , syntax ) ;
694+ return ImmutableArray . Create ( CSharpCustomModifier . CreateRequired ( modifierType ) ) ;
695+ }
696+ else
697+ {
698+ return ImmutableArray < CustomModifier > . Empty ;
699+ }
696700 }
697701 }
698702}
0 commit comments