use of com.redhat.ceylon.model.typechecker.model.TypeDeclaration in project ceylon-compiler by ceylon.
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 com.redhat.ceylon.model.typechecker.model.TypeDeclaration in project ceylon-compiler by ceylon.
the class TypeParserTests method testHomoTuple1.
@Test
public void testHomoTuple1() {
Type type = new TypeParser(MockLoader.instance).decodeType("a[1]", 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]", type.asString());
Assert.assertNull(type.getQualifyingType());
}
use of com.redhat.ceylon.model.typechecker.model.TypeDeclaration in project ceylon-compiler by ceylon.
the class TypeParserTests method testUnionParams.
@Test
public void testUnionParams() {
Type type = new TypeParser(MockLoader.instance).decodeType("a|t2<b|c,t2<d,e|f>>", null, mockDefaultModule, mockPkgUnit);
Assert.assertNotNull(type);
TypeDeclaration declaration = type.getDeclaration();
Assert.assertNotNull(declaration);
Assert.assertTrue(declaration instanceof UnionType);
UnionType union = (UnionType) declaration;
List<Type> caseTypes = union.getCaseTypes();
Assert.assertEquals(2, caseTypes.size());
// a
Assert.assertEquals("a", caseTypes.get(0).getDeclaration().getName());
Assert.assertTrue(caseTypes.get(0).getDeclaration() instanceof Class);
// first t2
Type firstT2 = caseTypes.get(1);
TypeDeclaration firstT2Declaration = firstT2.getDeclaration();
Assert.assertNotNull(firstT2Declaration);
Assert.assertTrue(firstT2Declaration instanceof Class);
Assert.assertEquals("t2", firstT2Declaration.getName());
Assert.assertEquals(2, firstT2.getTypeArgumentList().size());
// b|c
Type bc = firstT2.getTypeArgumentList().get(0);
Assert.assertTrue(bc.getDeclaration() instanceof UnionType);
Assert.assertEquals(2, bc.getDeclaration().getCaseTypes().size());
// b
Type b = bc.getDeclaration().getCaseTypes().get(0);
Assert.assertEquals("b", b.getDeclaration().getName());
Assert.assertTrue(b.getDeclaration() instanceof Class);
// c
Type c = bc.getDeclaration().getCaseTypes().get(1);
Assert.assertEquals("c", c.getDeclaration().getName());
Assert.assertTrue(c.getDeclaration() instanceof Class);
// second t2
Type secondT2 = firstT2.getTypeArgumentList().get(1);
TypeDeclaration secondT2Declaration = firstT2.getDeclaration();
Assert.assertNotNull(secondT2Declaration);
Assert.assertTrue(secondT2Declaration instanceof Class);
Assert.assertEquals("t2", secondT2Declaration.getName());
Assert.assertEquals(2, secondT2.getTypeArgumentList().size());
// d
Type d = secondT2.getTypeArgumentList().get(0);
Assert.assertEquals("d", d.getDeclaration().getName());
Assert.assertTrue(d.getDeclaration() instanceof Class);
// e|f
Type ef = secondT2.getTypeArgumentList().get(1);
Assert.assertTrue(ef.getDeclaration() instanceof UnionType);
Assert.assertEquals(2, ef.getDeclaration().getCaseTypes().size());
// e
Type e = ef.getDeclaration().getCaseTypes().get(0);
Assert.assertEquals("e", e.getDeclaration().getName());
Assert.assertTrue(e.getDeclaration() instanceof Class);
// f
Type f = ef.getDeclaration().getCaseTypes().get(1);
Assert.assertEquals("f", f.getDeclaration().getName());
Assert.assertTrue(f.getDeclaration() instanceof Class);
}
use of com.redhat.ceylon.model.typechecker.model.TypeDeclaration in project ceylon-compiler by ceylon.
the class TypeParserTests method testTuple3OrMoreAbbrev.
@Test
public void testTuple3OrMoreAbbrev() {
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 Class);
Assert.assertEquals("ceylon.language::Tuple", declaration.getQualifiedNameString());
Assert.assertEquals("[a, b, c+]", type.asString());
Assert.assertNull(type.getQualifyingType());
}
use of com.redhat.ceylon.model.typechecker.model.TypeDeclaration in project ceylon-compiler by ceylon.
the class TypeParserTests method testHomoTuple2.
@Test
public void testHomoTuple2() {
Type type = new TypeParser(MockLoader.instance).decodeType("a[2]", 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[2]", type.asString());
Assert.assertNull(type.getQualifyingType());
}
Aggregations