Skip to main content

module TypeSymbol

rascal-0.28.2

Usage

import lang::java::m3::TypeSymbol;

Dependencies

extend analysis::m3::TypeSymbol;

data Bound

data Bound  
= \super(list[TypeSymbol] bound)
| \extends(list[TypeSymbol] bound)
| \unbounded()
;

data TypeSymbol

data TypeSymbol  
= \class(loc decl, list[TypeSymbol] typeParameters)
| \interface(loc decl, list[TypeSymbol] typeParameters)
| \enum(loc decl)
| \method(loc decl, list[TypeSymbol] typeParameters, TypeSymbol returnType, list[TypeSymbol] parameters)
| \constructor(loc decl, list[TypeSymbol] parameters)
| \typeParameter(loc decl, Bound upperbound)
| \typeArgument(loc decl)
| \wildcard(Bound bound)
| \capture(Bound bound, TypeSymbol wildcard)
| \intersection(list[TypeSymbol] types)
| \union(list[TypeSymbol] types)
| \object()
| \int()
| \float()
| \double()
| \short()
| \boolean()
| \char()
| \byte()
| \long()
| \void()
| \null()
| \array(TypeSymbol component, int dimension)
| \typeVariable(loc decl)
| \unresolved()
;

function subtype

default bool subtype(TypeSymbol s, TypeSymbol t)

function lub

default TypeSymbol lub(TypeSymbol s, TypeSymbol t)