diff --git a/jode/jode/type/ClassInterfacesType.java b/jode/jode/type/ClassInterfacesType.java index 7c4f3b6..888c915 100644 --- a/jode/jode/type/ClassInterfacesType.java +++ b/jode/jode/type/ClassInterfacesType.java @@ -483,7 +483,7 @@ public class ClassInterfacesType extends ReferenceType { else type = ClassInfo.javaLangObject; String name = type.getName(); - int dot = name.lastIndexOf('.'); + int dot = Math.max(name.lastIndexOf('.'), name.lastIndexOf('$')); if (dot >= 0) name = name.substring(dot+1); if (Character.isUpperCase(name.charAt(0))) diff --git a/jode/test/InnerClass.java b/jode/test/InnerClass.java index f36d1ba..becc9c2 100644 --- a/jode/test/InnerClass.java +++ b/jode/test/InnerClass.java @@ -19,49 +19,52 @@ package jode.test; -public class InnerClass { - +public class InnerClass +{ private int x; - class Inner { + class Inner + { int a = 4; - private int b; - Inner() { - b = x; - } + private int b = x; - class InnerInner { - public InnerInner(int c) { - x = c; - a = b; - } + class InnerInner + { public int getB() { return Inner.this.getB(); } public int getStaticB(InnerInner innerinner) { + createInner(InnerClass.this); return innerinner.getB(); } + + public InnerInner(int c) { + x = c; + a = b; + } } - int getB() { + private int getB() { return b; } - public InnerInner createInnerInner(int a) { return new InnerInner(a); } } - class Extended extends Inner.InnerInner{ + class Extended + extends Inner.InnerInner + { + Extended(Inner inner) { inner.super(3); } } - static Inner createInner(InnerClass outer) { + private static Inner createInner(InnerClass outer) { return outer.new Inner(); }