Mercurial > hg > graal-jvmci-8
diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java @ 18782:3ea386a1036f
Truffle-DSL: breaking: @TypeCheck and @TypeCast now require casted/checked type as explicit parameter. Previously the type was parsed from the method name. (GRAAL-446 #resolve)
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 05 Jan 2015 20:23:22 +0100 |
parents | a665483c3881 |
children | 7d67a33e1bbb |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java Mon Jan 05 20:23:22 2015 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java Mon Jan 05 20:23:22 2015 +0100 @@ -121,7 +121,6 @@ cast.getTargetType().addTypeCast(cast); } - verifyGenericTypeChecksAndCasts(typeSystem); verifyMethodSignatures(typeSystem); verifyNamesUnique(typeSystem); @@ -150,39 +149,6 @@ } } - private static void verifyGenericTypeChecksAndCasts(TypeSystemData typeSystem) { - for (TypeData type : typeSystem.getTypes()) { - if (!type.getTypeChecks().isEmpty()) { - boolean hasGeneric = false; - for (TypeCheckData typeCheck : type.getTypeChecks()) { - if (typeCheck.isGeneric()) { - hasGeneric = true; - break; - } - } - if (!hasGeneric) { - type.addError("No generic but specific @%s method %s for type %s specified. " + "Specify a generic @%s method with parameter type %s to resolve this.", - TypeCheck.class.getSimpleName(), TypeSystemCodeGenerator.isTypeMethodName(type), ElementUtils.getSimpleName(type.getBoxedType()), TypeCheck.class.getSimpleName(), - Object.class.getSimpleName()); - } - } - if (!type.getTypeCasts().isEmpty()) { - boolean hasGeneric = false; - for (TypeCastData typeCast : type.getTypeCasts()) { - if (typeCast.isGeneric()) { - hasGeneric = true; - break; - } - } - if (!hasGeneric) { - type.addError("No generic but specific @%s method %s for type %s specified. " + "Specify a generic @%s method with parameter type %s to resolve this.", - TypeCast.class.getSimpleName(), TypeSystemCodeGenerator.asTypeMethodName(type), ElementUtils.getSimpleName(type.getBoxedType()), TypeCast.class.getSimpleName(), - Object.class.getSimpleName()); - } - } - } - } - private List<TypeData> parseTypes(TypeSystemData typeSystem) { List<TypeData> types = new ArrayList<>(); List<TypeMirror> typeMirrors = ElementUtils.getAnnotationValueList(TypeMirror.class, typeSystem.getTemplateTypeAnnotation(), "value");