QualifiedType.ceylon
import ceylon.ast.core {
BaseType,
QualifiedType,
TypeNameWithTypeArguments,
UIdentifier,
TypeArgument,
TypeArguments
}
import ceylon.ast.create {
createBaseType=baseType,
createQualifiedType=qualifiedType
}
import ceylon.test {
test,
assertEquals
}
test
shared void qualifiedType() {
assertEquals {
actual = createQualifiedType("X", "Y");
expected = QualifiedType(BaseType(TypeNameWithTypeArguments(UIdentifier("X"))), TypeNameWithTypeArguments(UIdentifier("Y")));
};
assertEquals {
actual = createQualifiedType(createQualifiedType(createBaseType("X", "A"), "Y", "B"), "Z", "C");
expected = QualifiedType {
qualifyingType = QualifiedType {
qualifyingType = BaseType(TypeNameWithTypeArguments(UIdentifier("X"), TypeArguments([TypeArgument(BaseType(TypeNameWithTypeArguments(UIdentifier("A"))))])));
nameAndArgs = TypeNameWithTypeArguments(UIdentifier("Y"), TypeArguments([TypeArgument(BaseType(TypeNameWithTypeArguments(UIdentifier("B"))))]));
};
nameAndArgs = TypeNameWithTypeArguments(UIdentifier("Z"), TypeArguments([TypeArgument(BaseType(TypeNameWithTypeArguments(UIdentifier("C"))))]));
};
// this is why we SO need that function
};
}