changeset 16968:cbe585ebce98

Truffle-DSL: fixed generic type earsure for types in the type system.
author Christian Humer <christian.humer@gmail.com>
date Wed, 27 Aug 2014 11:35:59 +0200
parents c5db657d93c1
children 865628e59c55
files graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java
diffstat 1 files changed, 2 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java	Wed Aug 27 11:35:59 2014 +0200
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java	Wed Aug 27 11:35:59 2014 +0200
@@ -34,7 +34,6 @@
 import com.oracle.truffle.dsl.processor.*;
 import com.oracle.truffle.dsl.processor.java.model.*;
 import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.DeclaredCodeTypeMirror;
-import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.WildcardTypeMirror;
 
 /**
  * THIS IS NOT PUBLIC API.
@@ -217,7 +216,7 @@
     }
 
     public static boolean isSubtype(TypeMirror type1, TypeMirror type2) {
-        if (type1 instanceof CodeTypeMirror && type2 instanceof CodeTypeMirror) {
+        if (type1 instanceof CodeTypeMirror || type2 instanceof CodeTypeMirror) {
             throw new UnsupportedOperationException();
         }
         return ProcessorContext.getInstance().getEnvironment().getTypeUtils().isSubtype(type1, type2);
@@ -1046,11 +1045,7 @@
         }
         int typeParameters = element.getTypeParameters().size();
         if (typeParameters > 0 && declaredType.getTypeArguments().size() != typeParameters) {
-            List<TypeMirror> genericTypes = new ArrayList<>();
-            for (int i = 0; i < typeParameters; i++) {
-                genericTypes.add(new WildcardTypeMirror(null, null));
-            }
-            return new DeclaredCodeTypeMirror(element, genericTypes);
+            return ProcessorContext.getInstance().getEnvironment().getTypeUtils().erasure(type);
         }
         return type;
     }