diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java | 6 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/couscous/types/ScalarType.java | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java index b0d347b..f1182e4 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java @@ -239,7 +239,11 @@ public class JavaReader { while (type.isAnonymous()) { type = type.getDeclaringClass(); } - return ScalarType.topLevel(erasure(typeOf(type)).getQualifiedName() + "_Anonymous_" + (anonymousClassCount++)); + ScalarType typeName = erasure(typeOf(type)); + while (typeName.outerType().isPresent()) { + typeName = typeName.outerType().get(); + } + return ScalarType.topLevel(typeName.getQualifiedName() + "_Anonymous_" + (anonymousClassCount++)); } private ITypeBinding findDeclaringClass(ASTNode node) { diff --git a/src/main/java/org/zwobble/couscous/types/ScalarType.java b/src/main/java/org/zwobble/couscous/types/ScalarType.java index 4a1bcc3..258e29c 100644 --- a/src/main/java/org/zwobble/couscous/types/ScalarType.java +++ b/src/main/java/org/zwobble/couscous/types/ScalarType.java @@ -52,7 +52,7 @@ public class ScalarType implements Type { return getLast(typeNames); } - public Optional<Type> outerType() { + public Optional<ScalarType> outerType() { if (typeNames.size() < 2) { return Optional.empty(); } else { |
