JVM Model Infer Append String to XBlockExpression [message #1833563] |
Sat, 17 October 2020 20:26  |
Eclipse User |
|
|
|
Hi I am trying to do something similar to https://www.eclipse.org/forums/index.php/t/501520/, but I think the advice in the last post is now outdated.
I have an XBlockExpression that I would like to use for the body of a method. After the XBlockExpression I'd like to append a string of Java code.
Here is what I tried, but can't seem to get it to work. The original example expects a LightweightTypeReference that I don't know how to create and the other compile signature gets a null pointer. Any advice would be very much appreciated!
MyOperation op = ...
XBlockExpression block = op.body
@Inject XbaseCompiler xbaseCompiler
...
it.members += toMethod(op, op.name, typeRef(Void.TYPE))[
it.visibility = JvmVisibility.PUBLIC;
it.body = [
xbaseCompiler.compile(block, it, typeRef(Void.TYPE), Set.of());
append('''\n\n//TEST''')
];
]
java.lang.NullPointerException
at org.eclipse.xtext.xbase.compiler.LiteralsCompiler._toJavaExpression(LiteralsCompiler.java:135)
at org.eclipse.xtext.xbase.compiler.LiteralsCompiler.internalToConvertedExpression(LiteralsCompiler.java:44)
at org.eclipse.xtext.xbase.compiler.FeatureCallCompiler.internalToConvertedExpression(FeatureCallCompiler.java:108)
at org.eclipse.xtext.xbase.compiler.XbaseCompiler.internalToConvertedExpression(XbaseCompiler.java:352)
at org.eclipse.xtext.xbase.compiler.TypeConvertingCompiler.internalToConvertedExpression(TypeConvertingCompiler.java:107)
at org.eclipse.xtext.xbase.compiler.XbaseCompiler._toJavaStatement(XbaseCompiler.java:754)
at org.eclipse.xtext.xbase.compiler.XbaseCompiler.doInternalToJavaStatement(XbaseCompiler.java:385)
at org.eclipse.xtext.xbase.compiler.AbstractXbaseCompiler.internalToJavaStatement(AbstractXbaseCompiler.java:479)
at org.eclipse.xtext.xbase.compiler.XbaseCompiler._toJavaStatement(XbaseCompiler.java:418)
at org.eclipse.xtext.xbase.compiler.XbaseCompiler.doInternalToJavaStatement(XbaseCompiler.java:359)
at org.eclipse.xtext.xbase.compiler.AbstractXbaseCompiler.internalToJavaStatement(AbstractXbaseCompiler.java:479)
at org.eclipse.xtext.xbase.compiler.AbstractXbaseCompiler.compile(AbstractXbaseCompiler.java:300)
at org.eclipse.xtext.xbase.compiler.AbstractXbaseCompiler.compile(AbstractXbaseCompiler.java:280)
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03468 seconds