Skip to content

Commit 022643e

Browse files
author
Matthias Grimmer
committed
Add AcceptMessage annotation to generate classes for message resolution
1 parent 2c316d1 commit 022643e

File tree

95 files changed

+4036
-766
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+4036
-766
lines changed

mx.truffle/suite.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,10 @@
9999
"com.oracle.truffle.dsl.processor" : {
100100
"subDir" : "truffle",
101101
"sourceDirs" : ["src"],
102-
"dependencies" : ["com.oracle.truffle.api.dsl"],
102+
"dependencies" : [
103+
"com.oracle.truffle.api.dsl",
104+
"com.oracle.truffle.api.interop"
105+
],
103106
"checkstyle" : "com.oracle.truffle.dsl.processor",
104107
"javaCompliance" : "1.7",
105108
"workingSets" : "Truffle,Codegen",
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.oracle.truffle.api.dsl.test.interop;
2+
3+
import com.oracle.truffle.api.dsl.test.ExpectError;
4+
import com.oracle.truffle.api.frame.VirtualFrame;
5+
import com.oracle.truffle.api.interop.AcceptMessage;
6+
7+
@AcceptMessage(value = "EXECUTE", receiverType = ValidTruffleObject.class, language = TestTruffleLanguage.class)
8+
public final class Execute extends BaseExecute {
9+
@SuppressWarnings({"static-method", "unused"})
10+
@ExpectError({"access method has to have 3 arguments"})
11+
public Object access(VirtualFrame frame, ValidTruffleObject object) {
12+
return true;
13+
}
14+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.oracle.truffle.api.dsl.test.interop;
2+
3+
import com.oracle.truffle.api.dsl.test.ExpectError;
4+
import com.oracle.truffle.api.interop.AcceptMessage;
5+
6+
@AcceptMessage(value = "EXECUTE", receiverType = ValidTruffleObject.class, language = TestTruffleLanguage.class)
7+
public final class Execute2 extends BaseExecute2 {
8+
@SuppressWarnings({"static-method", "unused"})
9+
@ExpectError({"The first argument must be a com.oracle.truffle.api.frame.VirtualFrame- but is java.lang.String"})
10+
public Object access(String frame, ValidTruffleObject object, Object[] args) {
11+
return true;
12+
}
13+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.oracle.truffle.api.dsl.test.interop;
2+
3+
import com.oracle.truffle.api.dsl.test.ExpectError;
4+
import com.oracle.truffle.api.frame.VirtualFrame;
5+
import com.oracle.truffle.api.interop.AcceptMessage;
6+
7+
@AcceptMessage(value = "EXECUTE", receiverType = ValidTruffleObject.class, language = TestTruffleLanguage.class)
8+
public final class Execute3 extends BaseExecute3 {
9+
@SuppressWarnings({"static-method", "unused"})
10+
@ExpectError({"The last argument must be the arguments array. Required type: java.lang.Object[]- but is java.lang.String"})
11+
public Object access(VirtualFrame frame, ValidTruffleObject object, String args) {
12+
return true;
13+
}
14+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.oracle.truffle.api.dsl.test.interop;
2+
3+
import com.oracle.truffle.api.frame.VirtualFrame;
4+
import com.oracle.truffle.api.interop.AcceptMessage;
5+
6+
@AcceptMessage(value = "EXECUTE", receiverType = ValidTruffleObject.class, language = TestTruffleLanguage.class)
7+
public final class Execute4 extends BaseExecute4 {
8+
@Override
9+
public Object access(VirtualFrame frame, ValidTruffleObject object, Object[] args) {
10+
return true;
11+
}
12+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.oracle.truffle.api.dsl.test.interop;
2+
3+
import com.oracle.truffle.api.frame.VirtualFrame;
4+
import com.oracle.truffle.api.interop.AcceptMessage;
5+
6+
@AcceptMessage(value = "EXECUTE", receiverType = ValidTruffleObject.class, language = TestTruffleLanguage.class)
7+
public final class Execute5 extends BaseExecute5 {
8+
@Override
9+
public Object access(VirtualFrame frame, ValidTruffleObjectB object, Object[] args) {
10+
return true;
11+
}
12+
13+
@Override
14+
public Object access(VirtualFrame frame, ValidTruffleObject object, Object[] args) {
15+
return true;
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.oracle.truffle.api.dsl.test.interop;
2+
3+
import com.oracle.truffle.api.interop.ForeignAccess;
4+
import com.oracle.truffle.api.interop.TruffleObject;
5+
6+
public class InvalidTruffleObject implements TruffleObject {
7+
8+
public ForeignAccess getForeignAccess() {
9+
return null;
10+
}
11+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.oracle.truffle.api.dsl.test.interop;
2+
3+
import com.oracle.truffle.api.dsl.test.ExpectError;
4+
import com.oracle.truffle.api.frame.VirtualFrame;
5+
import com.oracle.truffle.api.interop.AcceptMessage;
6+
7+
@AcceptMessage(value = "INVOKE", receiverType = ValidTruffleObject.class, language = TestTruffleLanguage.class)
8+
public final class Invoke extends BaseInvoke {
9+
@SuppressWarnings({"static-method", "unused"})
10+
@ExpectError({"access method has to have 4 arguments"})
11+
public Object access(VirtualFrame frame, ValidTruffleObject object, String name, Object[] args, int i) {
12+
return true;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.oracle.truffle.api.dsl.test.interop;
2+
3+
import com.oracle.truffle.api.dsl.test.ExpectError;
4+
import com.oracle.truffle.api.frame.VirtualFrame;
5+
import com.oracle.truffle.api.interop.AcceptMessage;
6+
7+
@AcceptMessage(value = "INVOKE", receiverType = ValidTruffleObject.class, language = TestTruffleLanguage.class)
8+
public final class Invoke2 extends BaseInvoke2 {
9+
@SuppressWarnings({"static-method", "unused"})
10+
@ExpectError({"The third argument must be a java.lang.String- but is int"})
11+
public Object access(VirtualFrame frame, ValidTruffleObject object, int name, Object[] args) {
12+
return true;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.oracle.truffle.api.dsl.test.interop;
2+
3+
import com.oracle.truffle.api.dsl.test.ExpectError;
4+
import com.oracle.truffle.api.frame.VirtualFrame;
5+
import com.oracle.truffle.api.interop.AcceptMessage;
6+
7+
@AcceptMessage(value = "INVOKE", receiverType = ValidTruffleObject.class, language = TestTruffleLanguage.class)
8+
public final class Invoke3 extends BaseInvoke3 {
9+
@SuppressWarnings({"static-method", "unused"})
10+
@ExpectError({"The last argument must be the arguments array. Required type: java.lang.Object[]- but is java.lang.String"})
11+
public Object access(VirtualFrame frame, ValidTruffleObject object, String name, String args) {
12+
return true;
13+
}
14+
}

0 commit comments

Comments
 (0)