aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/frontends
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-10 17:28:48 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-10 17:28:48 +0000
commit7dab9cb11a7181094144e4319716c4d91262a289 (patch)
treeaac0c439a4c3445837c8703c002d6bd23f5df3bf /src/main/java/org/zwobble/couscous/frontends
parenta76af2307f7d4e67ac949559de43afb0bd1e8da1 (diff)
Add reading of type literals
Diffstat (limited to 'src/main/java/org/zwobble/couscous/frontends')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java7
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
index 4200a98..114e4ef 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
@@ -66,6 +66,9 @@ public class JavaExpressionReader {
case ASTNode.STRING_LITERAL:
return readStringLiteral((StringLiteral)expression);
+ case ASTNode.TYPE_LITERAL:
+ return readTypeLiteral((TypeLiteral)expression);
+
case ASTNode.SIMPLE_NAME:
return readSimpleName((SimpleName)expression);
@@ -122,6 +125,10 @@ public class JavaExpressionReader {
return literal(expression.getLiteralValue());
}
+ private ExpressionNode readTypeLiteral(TypeLiteral expression) {
+ return literal(typeOf(expression.getType()));
+ }
+
private ExpressionNode readSimpleName(SimpleName expression) {
IBinding binding = expression.resolveBinding();
if (binding.getKind() == IBinding.VARIABLE) {
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 8eb7e62..19a9126 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
@@ -24,7 +24,7 @@ class JavaTypes {
}
static TypeName typeOf(ITypeBinding typeBinding) {
- return TypeName.of(typeBinding.getQualifiedName());
+ return TypeName.of(typeBinding.getErasure().getQualifiedName());
}
static Set<TypeName> superTypes(TypeDeclaration declaration) {