# HG changeset patch # User Christian Wimmer # Date 1367432865 25200 # Node ID 1964cf13c3767abe0476ef498bc35ff68e4b92a6 # Parent d9fd6af5d2009a4cc88bcc2c1d154c3d9771cdd4 Relax the type requirements for CheckCastDynamicNode diff -r d9fd6af5d200 -r 1964cf13c376 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java Wed May 01 10:01:17 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java Wed May 01 11:27:45 2013 -0700 @@ -52,9 +52,6 @@ this.type = type; this.object = object; this.forStoreCheck = forStoreCheck; - assert type.kind() == Kind.Object; - assert type.objectStamp().isExactType(); - assert type.objectStamp().type().getName().equals("Ljava/lang/Class;"); } public boolean isForStoreCheck() { @@ -82,7 +79,7 @@ if (object().objectStamp().alwaysNull()) { return object(); } - if (type().isConstant()) { + if (type().isConstant() && type().kind() == Kind.Object && type().asConstant().asObject() instanceof Class) { Class clazz = (Class) type().asConstant().asObject(); ResolvedJavaType t = tool.runtime().lookupJavaType(clazz); return graph().add(new CheckCastNode(t, object(), null, forStoreCheck));