Package org.eclipse.xtext.xbase.lib
Annotation Type Inline
-
@Beta @Retention(RUNTIME) @Target(METHOD) @GwtCompatible public @interface Inline
Allows to describe how a certain static function should be inlined by the Xbase compiler.- Since:
- 2.3
-
-
Required Element Summary
Required Elements Modifier and Type Required Element Description java.lang.String
value
The inline format string.
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description boolean
constantExpression
Whether the compiled Java is a constant expression operator.java.lang.Class<?>[]
imported
Types that should be imported to inline the operation.boolean
statementExpression
Whether the inlined expression is a statement expression (see 14.8 - Statement Expressions in Java Language Specification, Third Edition )
-
-
-
Element Detail
-
value
java.lang.String value
The inline format string. Placeholders like
$1, $2
etc can be used where the1..n
parameters of the inlined method are used for$1
to$n
and theimported()
types are used for subsequent indices. The next index$n
can be used to insert all type parameters of the original declaration. And finally the last indices refer to the upper bound substitute of the type parameters individually.So the order is arguments, imports, all type parameters at once incl. brackets and upper bounds of the individual type parameters without brackets
For the following signature
@Inline(value=".." imported = BigDecimal.class) public void <T1, T2> myMethod(String p1, String p2)
-
$1
refers top1
-
$2
refers top2
-
$3
refers toBigDecimal
-
$4
refers to<T1, T2>
-
$5
refers to the upper bound ofT1
-
$6
refers to the upper bound ofT2
-
-
-
-
statementExpression
boolean statementExpression
Whether the inlined expression is a statement expression (see 14.8 - Statement Expressions in Java Language Specification, Third Edition )- Default:
- false
-
-
-
constantExpression
boolean constantExpression
Whether the compiled Java is a constant expression operator. (see 15.28. Constant Expressions in Java Language Specification, Third Edition- Since:
- 2.5
- Default:
- false
-
-