Skip to content

Commit e083f6d

Browse files
authored
Merge pull request #145 from szeiger/issue/136
Treat default value getters as accessible.
2 parents f9cd0c1 + 02e9598 commit e083f6d

File tree

4 files changed

+12
-1
lines changed

4 files changed

+12
-1
lines changed

core/src/main/scala/com/typesafe/tools/mima/core/MemberInfo.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ class MemberInfo(val owner: ClassInfo, val bytecodeName: String, override val fl
7575
decodedName.substring(0, i+1).endsWith("$extension")
7676
}
7777

78-
def isAccessible: Boolean = isPublic && !isSynthetic && (!hasSyntheticName || isExtensionMethod)
78+
def isDefaultGetter: Boolean = decodedName.contains("$default$")
79+
80+
def isAccessible: Boolean = isPublic && !isSynthetic && (!hasSyntheticName || isExtensionMethod || isDefaultGetter)
7981

8082
def nonAccessible: Boolean = !isAccessible
8183

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
synthetic method copy$default$2()java.lang.String in class A has a different result type in new version, where it is Int rather than java.lang.String
2+
synthetic method copy$default$1()Int in class A has a different result type in new version, where it is Boolean rather than Int
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
final class A {
2+
def copy(x: Int = 0, y: String = "") = ()
3+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
final class A {
2+
def copy(x: Int, y: String) = ()
3+
def copy(z: Boolean = true, x: Int = 0, y: String = "") = ()
4+
}

0 commit comments

Comments
 (0)