abstract class $TP < $CALL_TP, $IS_LT{$TP}, $STR, $HASH |
---|
**** | Abstract interface to classes representing Sather types. Descendants are TP_CLASS, TP_ROUT, and TP_ITER. |
$HASH | $IS_EQ | $STR | $IS_LT{_} | $CALL_TP |
TP_CLASS | TP_ITER | TP_ROUT |
as:AS_TYPE_SPEC; |
---|
**** | construct AS_TYPE_SPEC for self; |
hash:INT; |
---|
**** | Hash function |
ifc: IFC; |
---|
**** | Returns the interface of the type. If neccessary the interface will be computed. |
impl: IMPL; |
---|
**** | Returns the implementation of the type. Produces error, if the type cannot have any implementation. |
is_abstract:BOOL; |
---|
**** | True if self is abstract. |
is_atomic:BOOL; |
---|
**** | True if an assignment to self is atomic used only for pSather |
is_bound:BOOL; |
---|
**** | True if self is a bound type. |
is_builtin:BOOL; |
---|
**** | True if self is a builtin type |
is_eq(t:$OB):BOOL; |
---|
**** | Equality test. |
is_external:BOOL; |
---|
**** | True is self is one of external types |
is_immutable:BOOL; |
---|
**** | True is self is an immutable type. |
is_lt(t:$TP):BOOL; |
---|
**** | Canonical ordering. |
is_neq(t:$OB):BOOL; |
---|
**** | Inequality test. |
is_partial:BOOL; |
---|
**** | True if self is a partial class |
is_reference_free:BOOL; |
---|
**** | Does the implementation use pointers that may affect garbage collection? |
is_subtype(t:$CALL_TP):BOOL; |
---|
**** | True if self is a subtype of `t'. |
kind:INT; |
---|
**** | One of TP_KIND::missing_tp, TP_KIND::val_tp, TP_KIND::ref_tp, TP_KIND::abs_tp, TP_KIND::part_tp, TP_KIND::ext_c_tp, TP_kind::ext_fortran_tp, pSather: TP_KIND::spr_tp, TP_KIND::rout_tp, TP_KIND::iter_tp. |
prog:PROG; |
---|
**** | This type's program object. |
str:STR; |
---|
**** | The string representation of self. Uses no whitespace, eg: "FOO{A,B{C},D}". |