From a237af4bd31b03573105ab002d37bad247dcbfc7 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 30 Oct 2016 20:40:22 +0000 Subject: Fix handling of anonymous types --- src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java | 6 +++++- src/main/java/org/zwobble/couscous/types/ScalarType.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src') 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 outerType() { + public Optional outerType() { if (typeNames.size() < 2) { return Optional.empty(); } else { -- cgit v1.2.3