use of org.eclipse.ceylon.model.loader.TypeParser in project ceylon by eclipse.
the class TypeParserTests method testSequenceAbbrev.
@Test
public void testSequenceAbbrev() {
Type type = new TypeParser(MockLoader.instance).decodeType("[a+]", null, mockDefaultModule, mockPkgUnit);
Assert.assertNotNull(type);
TypeDeclaration declaration = type.getDeclaration();
Assert.assertNotNull(declaration);
Assert.assertTrue(declaration instanceof Interface);
Assert.assertEquals("ceylon.language::Sequence", declaration.getQualifiedNameString());
Assert.assertEquals("[a+]", type.asString());
Assert.assertNull(type.getQualifyingType());
}
use of org.eclipse.ceylon.model.loader.TypeParser in project ceylon by eclipse.
the class TypeParserTests method testIntersectionAndUnion.
@Test
public void testIntersectionAndUnion() {
Type type = new TypeParser(MockLoader.instance).decodeType("a&b|c", null, mockDefaultModule, mockPkgUnit);
Assert.assertNotNull(type);
TypeDeclaration declaration = type.getDeclaration();
Assert.assertNotNull(declaration);
Assert.assertTrue(declaration instanceof UnionType);
UnionType union = (UnionType) declaration;
List<Type> unionTypes = union.getCaseTypes();
Assert.assertEquals(2, unionTypes.size());
Assert.assertTrue(unionTypes.get(0).getDeclaration() instanceof IntersectionType);
IntersectionType intersection = (IntersectionType) unionTypes.get(0).getDeclaration();
List<Type> intersectionTypes = intersection.getSatisfiedTypes();
Assert.assertEquals(2, intersectionTypes.size());
Assert.assertEquals("a", intersectionTypes.get(0).getDeclaration().getName());
Assert.assertTrue(intersectionTypes.get(0).getDeclaration() instanceof Class);
Assert.assertEquals("b", intersectionTypes.get(1).getDeclaration().getName());
Assert.assertTrue(intersectionTypes.get(1).getDeclaration() instanceof Class);
Assert.assertEquals("c", unionTypes.get(1).getDeclaration().getName());
Assert.assertTrue(unionTypes.get(1).getDeclaration() instanceof Class);
}
use of org.eclipse.ceylon.model.loader.TypeParser in project ceylon by eclipse.
the class TypeParserTests method testCallableOfEntry.
@Test
public void testCallableOfEntry() {
Type type = new TypeParser(MockLoader.instance).decodeType("ceylon.language::Boolean(ceylon.language::Nothing->ceylon.language::Nothing)", null, mockDefaultModule, mockPkgUnit);
Assert.assertNotNull(type);
TypeDeclaration declaration = type.getDeclaration();
Assert.assertNotNull(declaration);
Assert.assertTrue(declaration instanceof Interface);
Assert.assertEquals("ceylon.language::Callable<ceylon.language::Boolean,ceylon.language::Tuple<ceylon.language::Entry<ceylon.language::Nothing,ceylon.language::Nothing>,ceylon.language::Entry<ceylon.language::Nothing,ceylon.language::Nothing>,ceylon.language::Empty>>", printType(type));
Assert.assertNull(type.getQualifyingType());
}
use of org.eclipse.ceylon.model.loader.TypeParser in project ceylon by eclipse.
the class TypeParserTests method testQualified.
@Test
public void testQualified() {
Type type = new TypeParser(MockLoader.instance).decodeType("a.b", null, mockDefaultModule, mockPkgUnit);
Assert.assertNotNull(type);
TypeDeclaration declaration = type.getDeclaration();
Assert.assertNotNull(declaration);
Assert.assertTrue(declaration instanceof Class);
Assert.assertEquals("a.b", declaration.getQualifiedNameString());
Type qualifyingType = type.getQualifyingType();
Assert.assertNotNull(qualifyingType);
TypeDeclaration qualifyingDeclaration = qualifyingType.getDeclaration();
Assert.assertNotNull(qualifyingDeclaration);
Assert.assertTrue(qualifyingDeclaration instanceof Class);
Assert.assertEquals("a", qualifyingDeclaration.getName());
}
use of org.eclipse.ceylon.model.loader.TypeParser in project ceylon by eclipse.
the class TypeParserTests method testTuple2OrMoreAbbrev.
@Test
public void testTuple2OrMoreAbbrev() {
Type type = new TypeParser(MockLoader.instance).decodeType("[a,b+]", null, mockDefaultModule, mockPkgUnit);
Assert.assertNotNull(type);
TypeDeclaration declaration = type.getDeclaration();
Assert.assertNotNull(declaration);
Assert.assertTrue(declaration instanceof Class);
Assert.assertEquals("ceylon.language::Tuple", declaration.getQualifiedNameString());
Assert.assertEquals("[a, b+]", type.asString());
Assert.assertNull(type.getQualifyingType());
}
Aggregations