@@ -58,12 +58,24 @@ private static string FormatInterfaceConstraintTypes(INamedTypeSymbol @interface
5858
5959 var displayMethods = methods . Select ( method => {
6060 var typeParametersStrings = method . TypeParameters . Select ( t => t . ToDisplayString ( ) ) ;
61- var parametersStrings = method . Parameters . Select ( p => $@ "{ p . Type } { p . Name } ") ;
61+ var parametersStrings = method . Parameters . Select ( p => {
62+ var modifier = p . RefKind == RefKind . None
63+ ? string . Empty
64+ : $ "{ p . RefKind . ToString ( ) . ToLower ( ) } ";
65+
66+ return $@ "{ modifier } { p . Type } { p . Name } ";
67+ } ) ;
6268 var formattedAccessibility = ( method . ReturnType . DeclaredAccessibility != Accessibility . NotApplicable ? method . ReturnType . DeclaredAccessibility : Accessibility . Public ) . ToString ( ) . ToLower ( ) ;
6369 var formattedGenericTypeParameters = method . IsGenericMethod ? $@ "<{ string . Join ( ", " , typeParametersStrings ) } >" : string . Empty ;
6470 var formattedConstraints = CreateFormattedConstraints ( method . TypeParameters ) ;
6571 var signature = $@ "{ formattedAccessibility } virtual { method . ReturnType } { method . Name } { formattedGenericTypeParameters } ({ string . Join ( ", " , parametersStrings ) } ){ ( formattedConstraints != string . Empty ? $@ " { formattedConstraints } " : string . Empty ) } ";
66- var callParameters = $@ "{ string . Join ( ", " , method . Parameters . Select ( p => p . Name ) ) } ";
72+ var callParameters = $@ "{ string . Join ( ", " , method . Parameters . Select ( p => {
73+ var modifier = p . RefKind == RefKind . None
74+ ? string . Empty
75+ : $ "{ p . RefKind . ToString ( ) . ToLower ( ) } ";
76+
77+ return $ "{ modifier } { p . Name } ";
78+ } ) ) } " ;
6779
6880 var call = $@ "{ targetFieldName } .{ method . Name } { ( method . IsGenericMethod ? $@ "<{ string . Join ( ", " , typeParametersStrings ) } >" : string . Empty ) } ({ callParameters } )";
6981
@@ -123,8 +135,7 @@ private static string CreateFormattedConstraints(ImmutableArray<ITypeParameterSy
123135
124136 private static IEnumerable < string > FormatDisplayMethods ( IEnumerable < ( string signature , string call , ITypeSymbol returnType ) > displayMethods ) {
125137 return displayMethods . Select ( method => {
126- return
127- $@ " { method . signature } {{
138+ return $@ " { method . signature } {{
128139 { ( method . returnType . Name == "Void" ? string . Empty : "return " ) } { method . call } ;
129140 }}" ;
130141 } ) ;
0 commit comments