class CALL_SIG |
---|
**** | The type signature of a routine or iter *call*. There are special type objects for arguments which are void, untyped creation expressions, array creation expressions, integer literals, or floating point literals. |
attr args:ARRAY{CALL_ARG}; |
---|
**** | The argument types, if any. or iter call signature and we don't know whether there is a return value or not. |
attr has_ret:BOOL; |
---|
**** | True if the return value is used. or iter call signature and we don't know whether there is a return value or not. |
attr name:IDENT; |
---|
**** | The name of the call. or iter call signature and we don't know whether there is a return value or not. |
attr tp:$TP; |
---|
**** | The type on which the call is made. or iter call signature and we don't know whether there is a return value or not. |
attr unknown_ret:BOOL; |
---|
**** | True if this is a bound routine or iter call signature and we don't know whether there is a return value or not. |
attr args:ARRAY{CALL_ARG}; |
---|
**** | The argument types, if any. or iter call signature and we don't know whether there is a return value or not. |
attr has_ret:BOOL; |
---|
**** | True if the return value is used. or iter call signature and we don't know whether there is a return value or not. |
attr name:IDENT; |
---|
**** | The name of the call. or iter call signature and we don't know whether there is a return value or not. |
attr tp:$TP; |
---|
**** | The type on which the call is made. or iter call signature and we don't know whether there is a return value or not. |
attr unknown_ret:BOOL; |
---|
**** | True if this is a bound routine or iter call signature and we don't know whether there is a return value or not. |
boud_arg_error(call, arg, br, br_arg :$STR) |
---|
boud_arg_mode_error(call, arg, mode, br, br_arg, br_mode:$STR) |
---|
conforms_to(s:SIG):BOOL |
---|
**** | True if a call with signature self could be made on the routine or iter described by `s'. They must: 1) have the same name, 2) have the same number of arguments, 3) Both have or do not have a return value, 4) The mode of each argument is the same 5) for any in or once arguments, the type in self is the subtype of the type in s;
____for_any_`inout'_arguments,_the_type_in_self_is_the_same_as_in_`s';_ ____for_any_`out'_arguments,the_type_in_s_is_a_subtype_of_the_type_in_ ____self_if_it_has_one,_ 6) the return type of self is a subtype of the return ____type_of_`s'_(why_is_this_missing?_Boris_4-22-96) 7) Appear in the same type. |
create:SAME |
---|
**** | An uninitialized call sig. |
lookup(in_class:BOOL):SIG |
---|
**** | Lookup self and return the corresponding signature if there is one. Print an error message if it is ambiguous or absent and return void. Callers should set the err_loc. If `in_class' is true, then consider both public and private routines, otherwise just public ones. |
old_conforms_to(s:SIG):BOOL |
---|
**** | True if a call with signature self could be made on the routine or iter described by `s'. They must: 1) have the same name, 2) have the same number of arguments, 3) each call argument must conform to the corresponding
____declared_argument, 4) both must have or not have a return value. 5) Appear in the same type. |
prog:PROG |
---|
**** | The program in which this call appears. |
str:STR |
---|
**** | The string representation of self. Uses no whitespace. Use an underbar "_" for the return type if there is one, and the special strings "void", "create", "array", and "underscore" for call arguments whose type is inferred: "FOO::foo!(outA,void,C,array):_". If self is void, returns "void". |