annotate truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/SourceSectionTest.java @ 22157:dc83cc1f94f2

Using fully qualified imports
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Wed, 16 Sep 2015 11:33:22 +0200
parents b2d1c8ff592a
children 14e6dfb1ef05
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16921
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
1 /*
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
4 *
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
8 *
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
13 * accompanied this code).
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
14 *
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
18 *
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
21 * questions.
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
22 */
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
23 package com.oracle.truffle.api.dsl.test;
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
24
22157
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
25 import com.oracle.truffle.api.dsl.CreateCast;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
26 import com.oracle.truffle.api.dsl.Fallback;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
27 import com.oracle.truffle.api.dsl.NodeChild;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
28 import com.oracle.truffle.api.dsl.Specialization;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
29 import com.oracle.truffle.api.dsl.internal.SpecializationNode;
16921
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
30 import com.oracle.truffle.api.dsl.test.SourceSectionTestFactory.SourceSection0Factory;
16967
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
31 import com.oracle.truffle.api.dsl.test.SourceSectionTestFactory.SourceSection1Factory;
22157
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
32 import static com.oracle.truffle.api.dsl.test.TestHelper.createRoot;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
33 import static com.oracle.truffle.api.dsl.test.TestHelper.createRootPrefix;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
34 import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith;
16967
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
35 import com.oracle.truffle.api.dsl.test.TypeSystemTest.ArgumentNode;
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
36 import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode;
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
37 import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode;
22157
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
38 import com.oracle.truffle.api.nodes.Node;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
39 import com.oracle.truffle.api.source.SourceSection;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
40 import static org.hamcrest.CoreMatchers.is;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
41 import static org.hamcrest.CoreMatchers.sameInstance;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
42 import static org.junit.Assert.assertNull;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
43 import static org.junit.Assert.assertThat;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
44 import org.junit.Test;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
45 import org.junit.experimental.theories.DataPoints;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
46 import org.junit.experimental.theories.Theories;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
47 import org.junit.experimental.theories.Theory;
dc83cc1f94f2 Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21987
diff changeset
48 import org.junit.runner.RunWith;
16921
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
49
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
50 @RunWith(Theories.class)
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
51 public class SourceSectionTest {
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
52
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
53 @DataPoints public static final int[] data = new int[]{1, 2, 3, 4};
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
54
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
55 @Theory
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
56 public void testSourceSections(int value0, int value1, int value2) {
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
57 TestRootNode<SourceSection0> root = createRoot(SourceSection0Factory.getInstance());
21987
b2d1c8ff592a Less classes in the source API package. Merging interfaces and their only implementation into final classes. Hiding NullSourceSection behind factory method. Using JDK's standard CharsetDecoder instead of proprietary BytesDecoder.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21951
diff changeset
58 SourceSection section = SourceSection.createUnavailable("a", "b");
16921
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
59 root.getNode().assignSourceSection(section);
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
60 expectSourceSection(root.getNode(), section);
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
61 assertThat((int) executeWith(root, value0), is(value0));
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
62 expectSourceSection(root.getNode(), section);
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
63 assertThat((int) executeWith(root, value1), is(value1));
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
64 expectSourceSection(root.getNode(), section);
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
65 assertThat((int) executeWith(root, value2), is(value2));
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
66 expectSourceSection(root.getNode(), section);
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
67 }
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
68
16967
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
69 private static void expectSourceSection(Node root, SourceSection section) {
16921
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
70 assertThat(root.getSourceSection(), is(sameInstance(section)));
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
71 for (Node child : root.getChildren()) {
18761
a665483c3881 Truffle-DSL: new node layout implementation.
Christian Humer <christian.humer@gmail.com>
parents: 16967
diff changeset
72 if (child instanceof ArgumentNode || child instanceof SpecializationNode) {
16921
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
73 continue;
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
74 }
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
75 if (child != null) {
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
76 expectSourceSection(child, section);
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
77 }
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
78 }
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
79 }
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
80
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
81 @NodeChild("a")
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
82 static class SourceSection0 extends ValueNode {
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
83
19283
08aa0372dad4 Truffle-DSL: implement new guard expression syntax.
Christian Humer <christian.humer@gmail.com>
parents: 18761
diff changeset
84 @Specialization(guards = "a == 1")
16921
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
85 int do1(int a) {
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
86 return a;
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
87 }
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
88
19283
08aa0372dad4 Truffle-DSL: implement new guard expression syntax.
Christian Humer <christian.humer@gmail.com>
parents: 18761
diff changeset
89 @Specialization(guards = "a == 2")
16921
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
90 int do2(int a) {
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
91 return a;
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
92 }
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
93
19283
08aa0372dad4 Truffle-DSL: implement new guard expression syntax.
Christian Humer <christian.humer@gmail.com>
parents: 18761
diff changeset
94 @Specialization(guards = "a == 3")
16921
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
95 int do3(int a) {
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
96 return a;
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
97 }
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
98
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
99 @Fallback
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
100 Object do4(Object a) {
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
101 return a; // the generic answer to all questions
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
102 }
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
103 }
16967
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
104
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
105 @Test
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
106 public void testCreateCast() {
21987
b2d1c8ff592a Less classes in the source API package. Merging interfaces and their only implementation into final classes. Hiding NullSourceSection behind factory method. Using JDK's standard CharsetDecoder instead of proprietary BytesDecoder.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21951
diff changeset
107 SourceSection section = SourceSection.createUnavailable("a", "b");
b2d1c8ff592a Less classes in the source API package. Merging interfaces and their only implementation into final classes. Hiding NullSourceSection behind factory method. Using JDK's standard CharsetDecoder instead of proprietary BytesDecoder.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21951
diff changeset
108 assertNull(section.getSource());
16967
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
109 TestRootNode<SourceSection1> root = createRootPrefix(SourceSection1Factory.getInstance(), true, section);
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
110 expectSourceSection(root.getNode(), section);
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
111 assertThat((int) executeWith(root, 1), is(1));
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
112 expectSourceSection(root.getNode(), section);
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
113 }
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
114
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
115 @NodeChild("a")
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
116 static class SourceSection1 extends ValueNode {
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
117
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
118 public SourceSection1(SourceSection section) {
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
119 super(section);
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
120 }
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
121
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
122 @CreateCast("a")
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
123 public ValueNode cast(ValueNode node) {
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
124 assert getSourceSection() != null;
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
125 return node;
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
126 }
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
127
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
128 @Specialization
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
129 int do0(int a) {
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
130 return a;
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
131 }
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
132
c5db657d93c1 Truffle-DSL: added test for source sections in @CreateCast methods.
Christian Humer <christian.humer@gmail.com>
parents: 16921
diff changeset
133 }
16921
f5541b01f374 Truffle-DSL: fixed lost source sections for polymorphic specializations. (GRAAL-851 #resolve)
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
134 }