| class IFC < $STR |
|---|
| **** | A type interface. |
| $STR | SELECT_SIG |
| attr sigs:SIG_TBL; |
|---|
| **** | The interface signatures. |
| attr tp:$TP; |
|---|
| **** | The type whose interface this is. |
| attr sigs:SIG_TBL; |
|---|
| **** | The interface signatures. |
| attr tp:$TP; |
|---|
| **** | The type whose interface this is. |
| shared abs_cur:FSET{TUP{IDENT,INT}}; |
|---|
| **** | The set of abstract class names and number of parameters which are currently having their interfaces worked out. |
| shared abs_cur:FSET{TUP{IDENT,INT}}; |
|---|
| **** | The set of abstract class names and number of parameters which are currently having their interfaces worked out. |
| conflicting_sigs:TUP{SIG,SIG} |
|---|
| **** | If self has a conflict, return two conflicting signatures. Otherwise, return #(void,void). |
| conforms_to(i:IFC):BOOL |
|---|
| **** | True if self conforms to `i'. This means that for every signature in `i' there is a signature in self which conforms to it. |
| create(sigs:SIG_TBL, tp:$TP):SAME |
|---|
| **** | An interface with the signatures `sigs' for the type `tp'. Never gives void. |
| cycle_err |
|---|
| **** | Print an error message about a cycle of include type names. |
| ifc_for_class(t:TP_CLASS):SAME |
|---|
| ifc_for_iter(t:TP_ITER):SAME |
|---|
| **** | The interface of a bound iter type. |
| ifc_for_rout(t:TP_ROUT):SAME |
|---|
| **** | The interface of a bound routine type. |
| is_conflict_free:BOOL |
|---|
| **** | True if self is free of conflicting signatures. |
| nonconforming_sig(i:IFC):SIG |
|---|
| **** | If self conforms to `i' then return void, otherwise return a signature in `i' for which there is no conforming signature in self. |
| nonconforming_sig_list(i: IFC): FLIST{SIG} |
|---|
| **** | Version of nonconforming_sig that returns all the nonconforming signatures for better error reporting and so generates all the non-conforming messages at one go, rather than one at a time |
| prog:PROG |
|---|
| **** | The program this interface belongs to. |
| show |
|---|
| **** | Print the interface on OUT. |
| sig_conforming_to(s:SIG):SIG |
|---|
| **** | A signature from the interface which conforms to `s' or void if none. This will be unique if the interface has no conflicts. |
| sig_equal_to(s:SIG):SIG |
|---|
| **** | A signature from self which is equal to `s' if present, void if not. |
| sig_for_call(c:CALL_SIG):SIG |
|---|
| **** | A signature from the interface to which the call `c' conforms. Void if none. Reports an error if the call is ambiguous or missing (assumes that "err_loc" has been set). If it is unknown whether there is a return value, then choose the signature without one in case of conflict. |
| str:STR |
|---|