diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java @ 18797:3db8ec140f3f

Truffle-DSL: fix implicit cast optimization bug.
author Christian Humer <christian.humer@gmail.com>
date Wed, 07 Jan 2015 18:01:24 +0100
parents 714f4931b02c
children 121748e43a01
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java	Wed Jan 07 16:05:57 2015 +0100
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java	Wed Jan 07 18:01:24 2015 +0100
@@ -1726,7 +1726,7 @@
         final Set<ExecutableTypeData> executableTypes = findSpecializedExecutableTypes(execution, target.getType());
         if (executableTypes.isEmpty()) {
             throw new AssertionError(); // cannot execute child
-        } else if (executableTypes.size() == 1) {
+        } else if (executableTypes.size() == 1 && !target.getType().hasImplicitSourceTypes()) {
             ExecutableTypeData executableType = executableTypes.iterator().next();
             if (target.getType().isGeneric() && executableType.getEvaluatedCount() == 0) {
                 return createPolymorphicExecuteChild(execution, target, currentValues, shared);