use of org.eclipse.xtend.core.xtend.XtendTypeDeclaration in project xtext-xtend by eclipse.
the class XtendHoverSignatureProviderTest method testAnnotationReference.
@Test
public void testAnnotationReference() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package testPackage");
_builder.newLine();
_builder.append("@Foo");
_builder.newLine();
_builder.append("class Bar {}");
_builder.newLine();
_builder.append("annotation Foo { }");
_builder.newLine();
final XtendFile xtendFile = this.parseHelper.parse(_builder, this.getResourceSet());
XtendTypeDeclaration _head = IterableExtensions.<XtendTypeDeclaration>head(xtendFile.getXtendTypes());
final JvmType in = IterableExtensions.<XAnnotation>head(((XtendClass) _head).getAnnotations()).getAnnotationType();
Assert.assertEquals("Foo", this.signatureProvider.getSignature(in));
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.xtend.core.xtend.XtendTypeDeclaration in project xtext-xtend by eclipse.
the class XtendHoverSignatureProviderTest method testAutcastExpressions_3.
@Test
public void testAutcastExpressions_3() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package testPackage");
_builder.newLine();
_builder.append("class Foo {");
_builder.newLine();
_builder.append("\t");
_builder.append("def foo(CharSequence c) {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("if (c instanceof String) {");
_builder.newLine();
_builder.append("\t\t\t");
_builder.append("c.substring(1, 1)");
_builder.newLine();
_builder.append("\t\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t\t");
_builder.append("switch(c){");
_builder.newLine();
_builder.append("\t\t\t");
_builder.append("String : c.length");
_builder.newLine();
_builder.append("\t\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
final XtendFile xtendFile = this.parseHelper.parse(_builder, this.getResourceSet());
XtendTypeDeclaration _head = IterableExtensions.<XtendTypeDeclaration>head(xtendFile.getXtendTypes());
XtendMember _head_1 = IterableExtensions.<XtendMember>head(((XtendClass) _head).getMembers());
final XtendFunction func = ((XtendFunction) _head_1);
Assert.assertEquals("CharSequence c - foo(CharSequence)", this.signatureProvider.getSignature(IterableExtensions.<XtendParameter>head(func.getParameters())));
XExpression _expression = func.getExpression();
final XBlockExpression block = ((XBlockExpression) _expression);
XExpression _head_2 = IterableExtensions.<XExpression>head(block.getExpressions());
final XIfExpression ifexpr = ((XIfExpression) _head_2);
final XExpression then = ifexpr.getThen();
XExpression _head_3 = IterableExtensions.<XExpression>head(((XBlockExpression) then).getExpressions());
final XExpression target = ((XMemberFeatureCall) _head_3).getMemberCallTarget();
Assert.assertEquals("String c", this.signatureProvider.getSignature(target));
XExpression _get = block.getExpressions().get(1);
final XSwitchExpression switchExpr = ((XSwitchExpression) _get);
XExpression _then = IterableExtensions.<XCasePart>head(switchExpr.getCases()).getThen();
final XExpression expr = ((XMemberFeatureCall) _then).getMemberCallTarget();
Assert.assertEquals("String c", this.signatureProvider.getSignature(expr));
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.xtend.core.xtend.XtendTypeDeclaration in project xtext-xtend by eclipse.
the class AccessRestrictionInWorkspaceTest method testDiscouragedReferenceInReexportedProject.
@Test
public void testDiscouragedReferenceInReexportedProject() {
try {
final XtendFile xtendFile = this.parse(IResourcesSetupUtil.createFile("thirdProject/src/Dummy.xtend", "class D { discouraged.B b }"));
XtendTypeDeclaration _head = IterableExtensions.<XtendTypeDeclaration>head(xtendFile.getXtendTypes());
final XtendClass c = ((XtendClass) _head);
this._validationTestHelper.assertWarning(c, TypesPackage.Literals.JVM_TYPE_REFERENCE, IssueCodes.DISCOURAGED_REFERENCE, "Discouraged access: The type B is not accessible", "on required project firstProject");
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.xtend.core.xtend.XtendTypeDeclaration in project xtext-xtend by eclipse.
the class AccessRestrictionInWorkspaceTest method testForbiddenReferenceInSameProject.
@Test
public void testForbiddenReferenceInSameProject() {
try {
final XtendFile xtendFile = this.parse(IResourcesSetupUtil.createFile("firstProject/src/Dummy.xtend", "class D { restricted.A a }"));
XtendTypeDeclaration _head = IterableExtensions.<XtendTypeDeclaration>head(xtendFile.getXtendTypes());
final XtendClass c = ((XtendClass) _head);
this._validationTestHelper.assertNoError(c, IssueCodes.DISCOURAGED_REFERENCE);
this._validationTestHelper.assertNoError(c, IssueCodes.FORBIDDEN_REFERENCE);
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.xtend.core.xtend.XtendTypeDeclaration in project xtext-xtend by eclipse.
the class AccessRestrictionInWorkspaceTest method testExportedByOtherProject.
@Test
public void testExportedByOtherProject() {
try {
final XtendFile xtendFile = this.parse(IResourcesSetupUtil.createFile("secondProject/src/Dummy.xtend", "class D { allowed.C c }"));
XtendTypeDeclaration _head = IterableExtensions.<XtendTypeDeclaration>head(xtendFile.getXtendTypes());
final XtendClass c = ((XtendClass) _head);
this._validationTestHelper.assertNoError(c, IssueCodes.DISCOURAGED_REFERENCE);
this._validationTestHelper.assertNoError(c, IssueCodes.FORBIDDEN_REFERENCE);
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
Aggregations