TypeConstraint.ceylon
import ceylon.ast.core {
CaseTypes,
SatisfiedTypes,
TypeConstraint,
UIdentifier
}
import ceylon.ast.redhat {
RedHatTransformer,
typeConstraintToCeylon,
compileTypeConstraint
}
import com.redhat.ceylon.compiler.typechecker.tree {
Tree {
JTypeConstraint=TypeConstraint
}
}
shared object typeConstraint satisfies ConcreteTest<TypeConstraint,JTypeConstraint> {
String->TypeConstraint construct(String->UIdentifier parameterName, <String->CaseTypes>? caseTypes = null, <String->SatisfiedTypes>? satisfiedTypes = null)
=> "given ``parameterName.key`` `` caseTypes?.key else "" `` `` satisfiedTypes?.key else "" ``"->TypeConstraint(parameterName.item, caseTypes?.item, satisfiedTypes?.item);
shared String->TypeConstraint emptyTypeConstraint = construct(identifier.uidUIdentifier);
shared String->TypeConstraint nonemptyTypeConstraint = construct(identifier.uidUIdentifier, caseTypes.ofStringIntegerFloatCaseTypes, satisfiedTypes.satisfiesStringStarAndPrintableSatisfiedTypes);
compile = compileTypeConstraint;
fromCeylon = RedHatTransformer.transformTypeConstraint;
toCeylon = typeConstraintToCeylon;
codes = [emptyTypeConstraint, nonemptyTypeConstraint];
}