Mercurial > hg > truffle
changeset 21012:f6369bd988c7
Merge
author | Chris Seaton <chris.seaton@oracle.com> |
---|---|
date | Sat, 18 Apr 2015 13:44:36 +0100 |
parents | a84d57d27727 (diff) 84ff24bc9604 (current diff) |
children | c11ea4cb5765 609c542c0410 |
files | graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationVerificationPhase.java |
diffstat | 1 files changed, 25 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java Fri Apr 17 14:12:32 2015 -0700 +++ b/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java Sat Apr 18 13:44:36 2015 +0100 @@ -50,6 +50,7 @@ import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardNotTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardOrTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardStaticFieldTestFactory; +import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardStaticFinalFieldCompareTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardUnboundMethodTestFactory; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; @@ -385,6 +386,30 @@ } @Test + public void testGuardStaticFinalFieldCompare() { + CallTarget root = createCallTarget(GuardStaticFinalFieldCompareTestFactory.getInstance()); + GuardStaticFieldTest.field = true; + assertEquals("do1", root.call(1)); + assertEquals("do2", root.call(2)); + } + + @NodeChild + static class GuardStaticFinalFieldCompareTest extends ValueNode { + + protected static final int FIELD = 1; + + @Specialization(guards = "value == FIELD") + static String do1(int value) { + return "do1"; + } + + @Specialization(guards = "value != FIELD") + static String do2(int value) { + return "do2"; + } + } + + @Test public void testGuardMethod() { CallTarget root = createCallTarget(GuardMethodTestFactory.getInstance()); assertEquals("do1", root.call(1));