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.


Flattened version is here



Public


Readable Attributes
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.

Writable Attributes
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.

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