aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-28 14:26:12 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-28 14:30:03 +0000
commitfa80251275ef334d9baebf9e3cdaa7b4261cfb8c (patch)
treed113ac087fa3cb97de91f052b654441d03de4026 /src/main
parentf01484b73485e504dd0dae05064412e7bffd7415 (diff)
Don't set Object as a superclass
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
index 226e05d..c3c6b7f 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
@@ -5,6 +5,7 @@ import org.eclipse.jdt.core.dom.*;
import org.zwobble.couscous.ast.TypeName;
import org.zwobble.couscous.values.ObjectValues;
+import java.util.Optional;
import java.util.Set;
import static com.google.common.collect.Iterables.transform;
@@ -44,18 +45,16 @@ class JavaTypes {
private static Set<TypeName> superTypes(ITypeBinding typeBinding) {
ImmutableSet.Builder<TypeName> superTypes = ImmutableSet.builder();
- superTypes.add(superClass(typeBinding));
+ superClass(typeBinding).ifPresent(superTypes::add);
superTypes.addAll(transform(
asList(typeBinding.getInterfaces()),
JavaTypes::typeOf));
return superTypes.build();
}
- private static TypeName superClass(ITypeBinding typeBinding) {
- if (typeBinding.getSuperclass() == null) {
- return ObjectValues.OBJECT;
- } else {
- return typeOf(typeBinding.getSuperclass());
- }
+ private static Optional<TypeName> superClass(ITypeBinding typeBinding) {
+ return Optional.ofNullable(typeBinding.getSuperclass())
+ .map(JavaTypes::typeOf)
+ .filter(type -> !type.equals(ObjectValues.OBJECT));
}
}