use of org.eclipse.xtext.common.types.JvmFormalParameter in project xtext-xtend by eclipse.
the class DispatchHelperTest method testIgnoreVoidInParameterTypeInferrence_02.
@Test
public void testIgnoreVoidInParameterTypeInferrence_02() throws Exception {
XtendClass clazz = clazz("class X {\n" + " def dispatch foo(Number n, Void v) {null}" + " def dispatch foo(Void ignore, Object o) {null}" + "}");
JvmGenericType type = associations.getInferredType(clazz);
JvmOperation dispatchMethod = dispatchHelper.getDispatcherOperation(type, new DispatchHelper.DispatchSignature("foo", 2));
JvmFormalParameter firstParameter = dispatchMethod.getParameters().get(0);
assertEquals("java.lang.Number", firstParameter.getParameterType().getIdentifier());
JvmFormalParameter secondParameter = dispatchMethod.getParameters().get(1);
assertEquals("java.lang.Object", secondParameter.getParameterType().getIdentifier());
}
use of org.eclipse.xtext.common.types.JvmFormalParameter in project xtext-xtend by eclipse.
the class DispatchHelperTest method testIgnoreVoidInParameterTypeInferrence_03.
@Test
public void testIgnoreVoidInParameterTypeInferrence_03() throws Exception {
XtendClass clazz = clazz("class X {\n" + " def dispatch foo(String n, Void v) {null}" + " def dispatch foo(Integer i, Void v) {null}" + "}");
JvmGenericType type = associations.getInferredType(clazz);
JvmOperation dispatchMethod = dispatchHelper.getDispatcherOperation(type, new DispatchHelper.DispatchSignature("foo", 2));
JvmFormalParameter firstParameter = dispatchMethod.getParameters().get(0);
assertEquals("java.lang.Object", firstParameter.getParameterType().getIdentifier());
JvmFormalParameter secondParameter = dispatchMethod.getParameters().get(1);
assertEquals("java.lang.Object", secondParameter.getParameterType().getIdentifier());
}
use of org.eclipse.xtext.common.types.JvmFormalParameter in project xtext-xtend by eclipse.
the class InferredJvmModelTest method testExtensionToAnnotation_02.
@Test
public void testExtensionToAnnotation_02() throws Exception {
XtendFile xtendFile = file("class C { def void m(extension String s) {} }");
JvmGenericType inferredType = getInferredType(xtendFile);
JvmOperation jvmOperation = (JvmOperation) inferredType.getMembers().get(1);
List<JvmFormalParameter> parameters = jvmOperation.getParameters();
JvmFormalParameter singleParameter = parameters.get(0);
List<JvmAnnotationReference> annotations = singleParameter.getAnnotations();
assertEquals(1, annotations.size());
assertEquals(Extension.class.getCanonicalName(), annotations.get(0).getAnnotation().getQualifiedName());
}
use of org.eclipse.xtext.common.types.JvmFormalParameter in project xtext-xtend by eclipse.
the class InferredJvmModelTest method testInferredFunctionWithParameter.
@Test
public void testInferredFunctionWithParameter() throws Exception {
XtendFile xtendFile = file("class Foo { def bar(Boolean baz) { true } }");
JvmGenericType inferredType = getInferredType(xtendFile);
JvmOperation jvmOperation = (JvmOperation) inferredType.getMembers().get(1);
XtendFunction xtendFunction = (XtendFunction) ((XtendClass) xtendFile.getXtendTypes().get(0)).getMembers().get(0);
assertEquals(1, jvmOperation.getParameters().size());
JvmFormalParameter jvmParameter = jvmOperation.getParameters().get(0);
XtendParameter xtendParameter = xtendFunction.getParameters().get(0);
assertEquals(xtendParameter.getName(), jvmParameter.getSimpleName());
assertEquals(xtendParameter.getParameterType().getType(), jvmParameter.getParameterType().getType());
}
use of org.eclipse.xtext.common.types.JvmFormalParameter in project xtext-xtend by eclipse.
the class ParserTest method testExtensionOnLambdaParameter_01.
@Test
public void testExtensionOnLambdaParameter_01() throws Exception {
XtendClass clazz = clazz("class Foo { val x = [ extension String a, String b | 0 ] }");
assertEquals(1, clazz.getMembers().size());
XtendField f = (XtendField) clazz.getMembers().get(0);
XClosure initializer = (XClosure) f.getInitialValue();
List<JvmFormalParameter> parameters = initializer.getDeclaredFormalParameters();
assertEquals(2, parameters.size());
XtendFormalParameter firstParameter = (XtendFormalParameter) parameters.get(0);
assertTrue(firstParameter.isExtension());
XtendFormalParameter secondParameter = (XtendFormalParameter) parameters.get(1);
assertFalse(secondParameter.isExtension());
}
Aggregations