src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.processor/src/org/graalvm/compiler/replacements/processor/GeneratedPlugin.java
changeset 54084 84f10bbf993f
parent 52578 7dd81e82d083
child 58299 6df94ce3ab2f
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.processor/src/org/graalvm/compiler/replacements/processor/GeneratedPlugin.java	Tue Mar 12 12:12:01 2019 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.processor/src/org/graalvm/compiler/replacements/processor/GeneratedPlugin.java	Tue Mar 12 19:17:42 2019 +0100
@@ -208,7 +208,11 @@
         out.printf("        %s arg%d;\n", getErasedType(type), argIdx);
         out.printf("        if (args[%d].isConstant()) {\n", nodeIdx);
         if (type.equals(processor.getType("jdk.vm.ci.meta.ResolvedJavaType"))) {
-            out.printf("            arg%d = %s.asJavaType(args[%d].asConstant());\n", argIdx, deps.use(WellKnownDependency.CONSTANT_REFLECTION), nodeIdx);
+            out.printf("            jdk.vm.ci.meta.JavaConstant cst = args[%d].asJavaConstant();\n", nodeIdx);
+            out.printf("            arg%d = %s.asJavaType(cst);\n", argIdx, deps.use(WellKnownDependency.CONSTANT_REFLECTION));
+            out.printf("            if (arg%d == null) {\n", argIdx);
+            out.printf("                arg%d = %s.asObject(jdk.vm.ci.meta.ResolvedJavaType.class, cst);\n", argIdx, deps.use(WellKnownDependency.SNIPPET_REFLECTION));
+            out.printf("            }\n");
         } else {
             switch (type.getKind()) {
                 case BOOLEAN: