aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java6
-rw-r--r--src/main/java/org/zwobble/couscous/types/ScalarType.java2
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 {