Skip to content

Commit 5422a81

Browse files
committed
[Xamarin.Android.Tools.Bytecode] Fix for finding public setters with old kotlinc versions.
1 parent 1adb796 commit 5422a81

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/Xamarin.Android.Tools.Bytecode/Kotlin/KotlinFixups.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,10 +409,11 @@ static void FixupField (FieldInfo? field, KotlinProperty metadata)
409409
return null;
410410

411411
// Public/protected setters look like "setFoo"
412+
// Note: earlier versions of kotlinc used "setFoo-abcdefg" for public setters so we use GetMethodNameWithoutSuffix
412413
// Internal setters look like "setFoo$main"
413414
var possible_methods = property.IsInternalVisibility ?
414415
klass.Methods.Where (method => method.Name.StartsWith ($"set{property.Name.Capitalize ()}$", StringComparison.Ordinal)) :
415-
klass.Methods.Where (method => method.Name.Equals ($"set{property.Name.Capitalize ()}", StringComparison.Ordinal));
416+
klass.Methods.Where (method => method.GetMethodNameWithoutSuffix ().Equals ($"set{property.Name.Capitalize ()}", StringComparison.Ordinal));
416417

417418
possible_methods = possible_methods.Where (method =>
418419
property.ReturnType != null &&

0 commit comments

Comments
 (0)