TypeParameter.ceylon
import ceylon.ast.core {
Type,
TypeParameter,
UIdentifier,
Variance
}
import ceylon.ast.redhat {
RedHatTransformer,
typeParameterToCeylon,
compileTypeParameter
}
import com.redhat.ceylon.compiler.typechecker.tree {
Tree {
JTypeParameterDeclaration=TypeParameterDeclaration
}
}
shared object typeParameter satisfies ConcreteTest<TypeParameter,JTypeParameterDeclaration> {
String->TypeParameter construct(String->UIdentifier parameterName, <String->Variance>? variance = null, <String->Type>? defaultArgument = null)
=> "`` variance?.key else "" `` ``parameterName.key`` `` defaultArgument?.key exists then "=`` defaultArgument?.key else "" ``" else "" ``"->TypeParameter(parameterName.item, variance?.item, defaultArgument?.item);
shared String->TypeParameter uidTypeParameter = construct(identifier.uidUIdentifier);
shared String->TypeParameter outLidDefaultstoAnythingTypeParameter = construct(identifier.lidUIdentifier, outModifier.outModifier, baseType.anythingType);
compile = compileTypeParameter;
fromCeylon = RedHatTransformer.transformTypeParameter;
toCeylon = typeParameterToCeylon;
codes = [uidTypeParameter, outLidDefaultstoAnythingTypeParameter];
}