module analysis::typepal::AType
rascal-0.40.16
typepal-0.14.8
Usage
import analysis::typepal::AType;
Source code
http://github.com/usethesource/typepal/src/analysis/typepal/AType.rsc
Dependencies
import List;
extend analysis::typepal::GetLoc;
extend analysis::typepal::TModel;
data AType
data AType
= tvar(loc tname)
| lazyLub(list[AType] atypes)
| atypeList(list[AType] atypes)
| overloadedAType(rel[loc, IdRole, AType] overloads)
;
function isOverloadedAType
bool isOverloadedAType(overloadedAType(rel[loc, IdRole, AType] overloads))
default bool isOverloadedAType(AType _)
function lazyLub
AType lazyLub([*AType atypes1, lazyLub([*AType atypes2]), *AType atypes3])
AType lazyLub([*AType atypes1, AType atypea, *AType atypes2, AType atypeb, *AType atypes3])
AType lazyLub([AType atype])
function flatten
rel[loc, IdRole, AType] flatten(rel[loc, IdRole, AType] overloads)
function containsNestedOverloading
bool containsNestedOverloading(rel[loc, IdRole, AType] overloads)
function overloadedAType
AType overloadedAType(rel[loc, IdRole, AType] overloads)
function prettyAType
str prettyAType(tvar(loc tname))
str prettyAType(lazyLub(list[AType] atypes))
str prettyAType(atypeList(list[AType] atypes))
default str prettyAType(overloadedAType(rel[loc, IdRole, AType] overloads))
default str prettyAType(AType tp)
function itemizeLocs
str itemizeLocs(set[loc] locs)