ClassSpecifier.ceylon
import ceylon.ast.core {
ClassInstantiation,
ClassSpecifier,
PositionalArguments,
Super,
TypeNameWithTypeArguments
}
import ceylon.ast.redhat {
RedHatTransformer,
classSpecifierToCeylon,
compileClassSpecifier
}
import com.redhat.ceylon.compiler.typechecker.tree {
Tree {
JClassSpecifier=ClassSpecifier
}
}
import ceylon.ast.create {
baseType
}
shared object classSpecifier satisfies ConcreteTest<ClassSpecifier,JClassSpecifier> {
String->ClassSpecifier construct(String->TypeNameWithTypeArguments name, String->PositionalArguments arguments, <String->Super>? qualifier = null)
=> "=> `` qualifier exists then "`` qualifier?.key else "" ``." else "" ````name.key````arguments.key``"->ClassSpecifier(ClassInstantiation(name.item, arguments.item, qualifier?.item));
shared String->ClassSpecifier classSpecifyStringCharacters = construct("String"->baseType("String").nameAndArgs, positionalArguments.spreadTextPositionalArguments);
shared String->ClassSpecifier classSpecifySuperEntry
= construct {
value qualifier => \isuper.superSuper;
name = "Entry<Key,Item>"->baseType("Entry", "Key", "Item").nameAndArgs;
arguments = positionalArguments.keyItemPositionArguments;
};
compile = compileClassSpecifier;
fromCeylon = RedHatTransformer.transformClassSpecifier;
toCeylon = classSpecifierToCeylon;
codes = [classSpecifyStringCharacters, classSpecifySuperEntry];
}