use of org.eclipse.xtext.xbase.XBlockExpression in project xtext-xtend by eclipse.
the class LinkingTest method testBug343102_02.
@Test
public void testBug343102_02() throws Exception {
XtendFunction function = function("def <T> test(T t) {\n" + " t.getClass\n" + "}");
XMemberFeatureCall featureCall = (XMemberFeatureCall) ((XBlockExpression) function.getExpression()).getExpressions().get(0);
String identifier = featureCall.getFeature().getIdentifier();
assertEquals("java.lang.Object.getClass()", identifier);
}
use of org.eclipse.xtext.xbase.XBlockExpression in project xtext-xtend by eclipse.
the class LinkingTest method testOverloadedMethods_16.
@Test
public void testOverloadedMethods_16() throws Exception {
XtendFile file = file("import java.util.Collection\n" + "class X {\n" + " def <T> foo(Collection<? super T> collection, Iterable<T> elements) {\n" + " collection.addAll(elements.head)\n" + " }\n" + "}");
XtendClass clazz = (XtendClass) file.getXtendTypes().get(0);
XtendFunction func = (XtendFunction) clazz.getMembers().get(0);
XMemberFeatureCall featureCall = (XMemberFeatureCall) ((XBlockExpression) func.getExpression()).getExpressions().get(0);
JvmIdentifiableElement addAll = featureCall.getFeature();
assertNotNull(addAll);
assertFalse(addAll.eIsProxy());
assertEquals("org.eclipse.xtext.xbase.lib.CollectionExtensions.addAll(java.util.Collection,T[])", addAll.getIdentifier());
}
use of org.eclipse.xtext.xbase.XBlockExpression in project xtext-xtend by eclipse.
the class LinkingTest method testOverloadedMethods_05.
@Test
public void testOverloadedMethods_05() throws Exception {
XtendFile file = file("import java.util.List\n" + "class X {\n" + " def foo() {\n" + " var List<CharSequence> chars = null\n" + " var List<String> strings = null\n" + " var testdata.OverloadedMethods<CharSequence> receiver = null\n" + " receiver.overloaded2(chars, strings)\n" + " }\n" + "}");
XtendClass clazz = (XtendClass) file.getXtendTypes().get(0);
XtendFunction func = (XtendFunction) clazz.getMembers().get(0);
XMemberFeatureCall featureCall = (XMemberFeatureCall) ((XBlockExpression) func.getExpression()).getExpressions().get(3);
JvmIdentifiableElement overloaded = featureCall.getFeature();
assertNotNull(overloaded);
assertFalse(overloaded.eIsProxy());
assertEquals("testdata.OverloadedMethods.overloaded2(java.util.Collection,java.lang.Iterable)", overloaded.getIdentifier());
}
use of org.eclipse.xtext.xbase.XBlockExpression in project xtext-xtend by eclipse.
the class LinkingTest method testCreateExtension_00.
@Test
public void testCreateExtension_00() throws Exception {
XtendClass clazz = clazz("class Foo { " + " def create list: newArrayList('foo') getListWithFooAnd(String s) {" + " list" + " this.getListWithFooAnd('')" + " }" + "}");
assertEquals(1, clazz.getMembers().size());
XtendFunction func = (XtendFunction) clazz.getMembers().get(0);
XFeatureCall featureCall = (XFeatureCall) ((XBlockExpression) func.getExpression()).getExpressions().get(0);
Set<EObject> elements = associator.getJvmElements(func);
Iterable<JvmOperation> filter = filter(elements, JvmOperation.class);
JvmOperation initializer = filter(filter, new Predicate<JvmOperation>() {
@Override
public boolean apply(JvmOperation input) {
return input.getSimpleName().startsWith("_init_");
}
}).iterator().next();
assertEquals(initializer.getParameters().get(0), featureCall.getFeature());
XAbstractFeatureCall recursiveFeatureCall = (XAbstractFeatureCall) ((XBlockExpression) func.getExpression()).getExpressions().get(1);
assertEquals("Foo.getListWithFooAnd(java.lang.String)", recursiveFeatureCall.getFeature().getIdentifier());
}
use of org.eclipse.xtext.xbase.XBlockExpression in project xtext-xtend by eclipse.
the class LinkingTest method testExtensionMethodCall_Bug351827_01.
@Test
public void testExtensionMethodCall_Bug351827_01() throws Exception {
XtendClass clazz = clazz("" + "class Foo {" + " extension testdata.Properties1 p\n" + " def foo(String s) {\n" + " s.setProp1()\n" + " }\n" + " def setProp1(String s) { s }" + "}");
XtendFunction func = (XtendFunction) clazz.getMembers().get(1);
final XMemberFeatureCall call = (XMemberFeatureCall) ((XBlockExpression) func.getExpression()).getExpressions().get(0);
assertEquals("Foo.setProp1(java.lang.String)", call.getFeature().getIdentifier());
}
Aggregations