Skip to content

Commit 9184e91

Browse files
authored
Merge pull request #636 from dwijnand/name-mangling
Fix name mangling for nested classes
2 parents da0c4c2 + a516715 commit 9184e91

File tree

5 files changed

+11
-1
lines changed

5 files changed

+11
-1
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,10 @@ object MimaUnpickler {
4444
def withOwner(cls: ClassInfo) = {
4545
val nme1 = cls.bytecodeName
4646
val nme2 = symbolInfo.name
47+
val nme3 = if (nme2.startsWith(nme1)) nme2.substring(nme2.lastIndexOf('$') + 1) else nme2
4748
val conc = if (nme1.endsWith("$")) "" else "$"
4849
val suff = if (symbolInfo.isModuleOrModuleClass) "$" else ""
49-
val name = nme1 + conc + nme2 + suff
50+
val name = nme1 + conc + nme3 + suff
5051
clazz.owner.classes(name)
5152
}
5253
val fallback = if (symbolInfo.isModuleOrModuleClass) clazz.moduleClass else clazz
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
object App {
2+
def main(args: Array[String]): Unit = ()
3+
}

functional-tests/src/test/unpickling-name-mangling-ok/problems.txt

Whitespace-only changes.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class Foo {
2+
private[Foo] object Bar
3+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class Foo {
2+
private[Foo] object Bar
3+
}

0 commit comments

Comments
 (0)