Search in sources :

Example 46 with JvmGenericType

use of org.eclipse.xtext.common.types.JvmGenericType in project xtext-eclipse by eclipse.

the class AbstractTypeProviderTest method test_staticNestedTypes_Outer.

@Test
public void test_staticNestedTypes_Outer() {
    String typeName = StaticNestedTypes.Outer.class.getName();
    String expectedSuffix = StaticNestedTypes.class.getSimpleName() + "$" + StaticNestedTypes.Outer.class.getSimpleName();
    assertTrue(typeName + " endsWith " + expectedSuffix, typeName.endsWith(expectedSuffix));
    JvmGenericType type = (JvmGenericType) getTypeProvider().findTypeByName(typeName);
    assertNotNull(type);
    assertTrue(type.isStatic());
    assertEquals(typeName, type.getIdentifier());
    JvmType outerType = (JvmType) type.eContainer();
    assertEquals(StaticNestedTypes.class.getName(), outerType.getIdentifier());
}
Also used : JvmGenericType(org.eclipse.xtext.common.types.JvmGenericType) StaticNestedTypes(org.eclipse.xtext.common.types.testSetups.StaticNestedTypes) JvmType(org.eclipse.xtext.common.types.JvmType) Test(org.junit.Test)

Example 47 with JvmGenericType

use of org.eclipse.xtext.common.types.JvmGenericType in project xtext-eclipse by eclipse.

the class AbstractTypeProviderTest method test_ParameterizedTypes_U_01.

@Test
public void test_ParameterizedTypes_U_01() {
    String typeName = ParameterizedTypes.class.getName();
    JvmGenericType type = (JvmGenericType) getTypeProvider().findTypeByName(typeName);
    JvmTypeParameter typeVariable = type.getTypeParameters().get(2);
    assertEquals("U", typeVariable.getIdentifier());
    assertSame(type, typeVariable.getDeclarator());
    assertEquals(1, typeVariable.getConstraints().size());
    JvmTypeConstraint typeConstraint = typeVariable.getConstraints().get(0);
    assertTrue(typeConstraint instanceof JvmUpperBound);
    JvmUpperBound upperBound = (JvmUpperBound) typeConstraint;
    assertNotNull(upperBound.getTypeReference());
    assertFalse(upperBound.getTypeReference().toString(), upperBound.getTypeReference().eIsProxy());
    assertEquals("java.util.List<S>", upperBound.getTypeReference().getIdentifier());
    JvmParameterizedTypeReference listType = (JvmParameterizedTypeReference) upperBound.getTypeReference();
    assertEquals(1, listType.getArguments().size());
    JvmTypeReference typeArgument = listType.getArguments().get(0);
    JvmTypeParameter s = type.getTypeParameters().get(0);
    assertSame(s, typeArgument.getType());
}
Also used : JvmUpperBound(org.eclipse.xtext.common.types.JvmUpperBound) JvmTypeReference(org.eclipse.xtext.common.types.JvmTypeReference) JvmTypeParameter(org.eclipse.xtext.common.types.JvmTypeParameter) JvmGenericType(org.eclipse.xtext.common.types.JvmGenericType) JvmTypeConstraint(org.eclipse.xtext.common.types.JvmTypeConstraint) JvmParameterizedTypeReference(org.eclipse.xtext.common.types.JvmParameterizedTypeReference) Test(org.junit.Test)

Example 48 with JvmGenericType

use of org.eclipse.xtext.common.types.JvmGenericType in project xtext-eclipse by eclipse.

the class AbstractTypeProviderTest method testMemberCount_06_02.

@Test
public void testMemberCount_06_02() {
    String typeName = NestedTypes.Outer.Inner.class.getName().replace('$', '.');
    JvmGenericType type = (JvmGenericType) getTypeProvider().findTypeByName(typeName, true);
    assertNull(type);
}
Also used : StaticNestedTypes(org.eclipse.xtext.common.types.testSetups.StaticNestedTypes) NestedTypes(org.eclipse.xtext.common.types.testSetups.NestedTypes) JvmGenericType(org.eclipse.xtext.common.types.JvmGenericType) Test(org.junit.Test)

Example 49 with JvmGenericType

use of org.eclipse.xtext.common.types.JvmGenericType in project xtext-eclipse by eclipse.

the class AbstractTypeProviderTest method test_staticNestedTypes_Outer_method.

@Test
public void test_staticNestedTypes_Outer_method() {
    String typeName = StaticNestedTypes.class.getName();
    JvmGenericType type = (JvmGenericType) getTypeProvider().findTypeByName(typeName);
    JvmOperation operation = getMethodFromType(type, StaticNestedTypes.Outer.class, "method()");
    assertEquals("int", operation.getReturnType().getIdentifier());
}
Also used : JvmOperation(org.eclipse.xtext.common.types.JvmOperation) JvmGenericType(org.eclipse.xtext.common.types.JvmGenericType) StaticNestedTypes(org.eclipse.xtext.common.types.testSetups.StaticNestedTypes) Test(org.junit.Test)

Example 50 with JvmGenericType

use of org.eclipse.xtext.common.types.JvmGenericType in project xtext-eclipse by eclipse.

the class AbstractTypeProviderTest method testMemberCount_03.

@Test
public void testMemberCount_03() {
    String typeName = InitializerWithoutConstructor.class.getName();
    JvmGenericType type = (JvmGenericType) getTypeProvider().findTypeByName(typeName);
    int methodCount = InitializerWithoutConstructor.class.getDeclaredMethods().length;
    assertEquals(0, methodCount);
    int constructorCount = InitializerWithoutConstructor.class.getDeclaredConstructors().length;
    // default constructor
    assertEquals(1, constructorCount);
    assertEquals(methodCount + constructorCount, type.getMembers().size());
    diagnose(type);
    Resource resource = type.eResource();
    getAndResolveAllFragments(resource);
    recomputeAndCheckIdentifiers(resource);
}
Also used : InitializerWithoutConstructor(org.eclipse.xtext.common.types.testSetups.InitializerWithoutConstructor) JvmGenericType(org.eclipse.xtext.common.types.JvmGenericType) Resource(org.eclipse.emf.ecore.resource.Resource) JvmTypeConstraint(org.eclipse.xtext.common.types.JvmTypeConstraint) Test(org.junit.Test)

Aggregations

JvmGenericType (org.eclipse.xtext.common.types.JvmGenericType)297 Test (org.junit.Test)237 JvmOperation (org.eclipse.xtext.common.types.JvmOperation)117 XtendFile (org.eclipse.xtend.core.xtend.XtendFile)64 XtendClass (org.eclipse.xtend.core.xtend.XtendClass)56 JvmType (org.eclipse.xtext.common.types.JvmType)49 JvmTypeReference (org.eclipse.xtext.common.types.JvmTypeReference)47 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)33 JvmConstructor (org.eclipse.xtext.common.types.JvmConstructor)33 JvmTypeParameter (org.eclipse.xtext.common.types.JvmTypeParameter)33 JvmField (org.eclipse.xtext.common.types.JvmField)31 XtendFunction (org.eclipse.xtend.core.xtend.XtendFunction)30 EObject (org.eclipse.emf.ecore.EObject)28 Resource (org.eclipse.emf.ecore.resource.Resource)28 JvmMember (org.eclipse.xtext.common.types.JvmMember)25 JvmParameterizedTypeReference (org.eclipse.xtext.common.types.JvmParameterizedTypeReference)24 JvmTypeConstraint (org.eclipse.xtext.common.types.JvmTypeConstraint)21 JvmUpperBound (org.eclipse.xtext.common.types.JvmUpperBound)17 JvmDeclaredType (org.eclipse.xtext.common.types.JvmDeclaredType)15 JvmFormalParameter (org.eclipse.xtext.common.types.JvmFormalParameter)15