GroupedType.ceylon
"A type, grouped in angle brackets to resolve lexical ambiguity:
String->String[]
is parsed as
Entry<String,String[]>
To get
Entry<String,String>[]
you need to write
<String->String>[]"
shared class GroupedType(type)
extends PrimaryType() {
"The inner / wrapped type."
shared Type type;
shared actual [Type] children = [type];
shared actual Result transform<out Result>(Transformer<Result> transformer)
=> transformer.transformGroupedType(this);
shared actual void visit(Visitor visitor)
=> visitor.visitGroupedType(this);
shared actual Boolean equals(Object that) {
if (is GroupedType that) {
return type == that.type;
} else {
return false;
}
}
shared actual Integer hash => 31 * type.hash;
shared GroupedType copy(Type type = this.type) {
value ret = GroupedType(type);
copyExtraInfoTo(ret);
return ret;
}
}