Skip to content

Commit 3ff7a93

Browse files
committedMay 26, 2019
Fix #106 in processor-kotlin
1 parent 1a97dfa commit 3ff7a93

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed
 

‎processor-base/src/main/kotlin/testaccessors/internal/base/AbstractAccessorWriter.kt

+1
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,6 @@ abstract class AbstractAccessorWriter(
4444
const val PARAMETER_NAME_NEW_VALUE = "newValue"
4545
const val TYPE_NAME_VALUE = "T"
4646
const val ERROR_MESSAGE_ILLEGAL_ACCESS = "Accessing this method from this source set is not allowed"
47+
const val COMMENT_ACCESS_FLAGS = "Android's implementation of Field replaces the 'modifiers' field with one called 'accessFlags'"
4748
}
4849
}

‎processor-kotlin/src/main/kotlin/testaccessors/internal/AccessorWriter.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ internal class AccessorWriter(
118118
element.simpleName)
119119
.addStatement("val wasAccessible = isAccessible")
120120
.addStatement("isAccessible = true")
121-
.addStatement("val modifiersField = %T::class.java.getDeclaredField(\"modifiers\")", Field::class)
121+
.addComment(COMMENT_ACCESS_FLAGS)
122+
.addStatement("val modifiersField = %T::class.java.getDeclaredFields().first { it.name in arrayOf(\"modifiers\", \"accessFlags\") }", Field::class)
122123
.addStatement("val wasModifiersAccessible = modifiersField.isAccessible")
123124
.addStatement("modifiersField.isAccessible = true")
124125
.addStatement("modifiersField.setInt(this, modifiers and %T.FINAL.inv())", java.lang.reflect.Modifier::class)

‎sample-android/src/testJava/java/root/AndroidApplicationTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public void setAStaticField() {
9090
field.setAccessible(true);
9191
final Object actual;
9292
try {
93-
actual = field.get(subject);
93+
actual = field.get(null);
9494
} catch (final IllegalAccessException e) {
9595
throw new RuntimeException(e);
9696
}
@@ -120,4 +120,4 @@ public void getAStaticField() {
120120

121121
assertSame(expected, actual);
122122
}
123-
}
123+
}

0 commit comments

Comments
 (0)
Please sign in to comment.