Skip to main content

module analysis::typepal::AType

rascal-0.34.0
typepal-0.8.10

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)