aboutsummaryrefslogtreecommitdiff
path: root/src
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
parentf01484b73485e504dd0dae05064412e7bffd7415 (diff)
Don't set Object as a superclass
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java13
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java4
2 files changed, 8 insertions, 9 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));
}
}
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
index ca2869c..f7016ff 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
@@ -310,7 +310,7 @@ public class JavaReaderTests {
InterfaceNode classNode = (InterfaceNode) classes.get(0);
assertEquals(TypeName.of("com.example.Example"), classNode.getName());
assertEquals(list(), classNode.getMethods());
- assertEquals(set(ObjectValues.OBJECT), classNode.getSuperTypes());
+ assertEquals(set(), classNode.getSuperTypes());
}
@Test
@@ -322,7 +322,7 @@ public class JavaReaderTests {
InterfaceNode classNode = (InterfaceNode) classes.get(0);
assertEquals(TypeName.of("com.example.Example"), classNode.getName());
assertEquals(list(), classNode.getMethods());
- assertThat(classNode.getSuperTypes(), contains(ObjectValues.OBJECT, TypeName.of("java.util.function.IntSupplier")));
+ assertThat(classNode.getSuperTypes(), contains(TypeName.of("java.util.function.IntSupplier")));
}
@Test