ExtendedType.ceylon
import ceylon.ast.core {
ArgumentList,
ExtendedType,
Extension,
PositionalArguments,
TypeNameWithTypeArguments,
UIdentifier
}
import ceylon.ast.create {
createBaseExpression=baseExpression,
createExtendedType=extendedType
}
import ceylon.test {
test,
assertEquals
}
test
shared void extendedType() {
assertEquals {
actual = createExtendedType("Sup");
expected = ExtendedType(Extension(TypeNameWithTypeArguments(UIdentifier("Sup")), PositionalArguments()));
message = "Sup() extended type";
};
assertEquals {
actual = createExtendedType {
name = "Point";
createBaseExpression("x"),
createBaseExpression("y")
};
expected = ExtendedType(Extension {
nameAndArgs = TypeNameWithTypeArguments(UIdentifier("Point"));
arguments = PositionalArguments(ArgumentList([createBaseExpression("x"), createBaseExpression("y")]));
});
message = "Point(x, y) extended type";
};
}