| 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}". |