class ELT
****
An element of a class in the Sather compiler. We avoid copying any source trees and computing much for code which isn't used.


Flattened version is here



Public


Readable Attributes
attr as:$AS_CLASS_ELT;
**** The source tree for this element. This may be a routine or iter definition or an attribute definition. Whether this refers to the reader or the writer is determined from the signature. The element may have a different name or "private" status from the source because of renaming. this element should be resolved. The same context can be shared between elements. An element finds its prog here, too. "private" and "readonly" includes. class (with or without a body).
attr con:TP_CONTEXT;
**** The context within which the types in this element should be resolved. The same context can be shared between elements. An element finds its prog here, too. "private" and "readonly" includes. class (with or without a body).
attr is_external:BOOL;
**** True if this is in an external class (with or without a body).
attr is_:BOOL;
**** True if . Explicit because of "private" and "readonly" includes. class (with or without a body).
attr sig:SIG;
**** The signature of the element. in the class it originally came from. Used to detect built-in ops. This may be a routine or iter definition or an attribute definition. Whether this refers to the reader or the writer is determined from the signature. The element may have a different name or "private" status from the source because of renaming. this element should be resolved. The same context can be shared between elements. An element finds its prog here, too. "private" and "readonly" includes. class (with or without a body).
attr srcsig:SIG;
**** The signature of this routine or iter in the class it originally came from. Used to detect built-in ops. This may be a routine or iter definition or an attribute definition. Whether this refers to the reader or the writer is determined from the signature. The element may have a different name or "private" status from the source because of renaming. this element should be resolved. The same context can be shared between elements. An element finds its prog here, too. "private" and "readonly" includes. class (with or without a body).

Writable Attributes
attr as:$AS_CLASS_ELT;
**** The source tree for this element. This may be a routine or iter definition or an attribute definition. Whether this refers to the reader or the writer is determined from the signature. The element may have a different name or "private" status from the source because of renaming. this element should be resolved. The same context can be shared between elements. An element finds its prog here, too. "private" and "readonly" includes. class (with or without a body).
attr con:TP_CONTEXT;
**** The context within which the types in this element should be resolved. The same context can be shared between elements. An element finds its prog here, too. "private" and "readonly" includes. class (with or without a body).
attr is_external:BOOL;
**** True if this is in an external class (with or without a body).
attr is_:BOOL;
**** True if . Explicit because of "private" and "readonly" includes. class (with or without a body).
attr sig:SIG;
**** The signature of the element. in the class it originally came from. Used to detect built-in ops. This may be a routine or iter definition or an attribute definition. Whether this refers to the reader or the writer is determined from the signature. The element may have a different name or "private" status from the source because of renaming. this element should be resolved. The same context can be shared between elements. An element finds its prog here, too. "private" and "readonly" includes. class (with or without a body).
attr srcsig:SIG;
**** The signature of this routine or iter in the class it originally came from. Used to detect built-in ops. This may be a routine or iter definition or an attribute definition. Whether this refers to the reader or the writer is determined from the signature. The element may have a different name or "private" status from the source because of renaming. this element should be resolved. The same context can be shared between elements. An element finds its prog here, too. "private" and "readonly" includes. class (with or without a body).

Features
as_tp:AS_TYPE_SPEC
****
conflicts_with(e:SAME):BOOL
**** True if the signature of self conflicts with the signature of `e'. This is a symmetric relationship.
create(sig:SIG, srcsig:SIG, as:$AS_CLASS_ELT, con:TP_CONTEXT,
impl:IMPL
**** The implementation object for this element.
is_abstract:BOOL
**** True if this element is a routine or iter without a body.
is_attr_access:BOOL
**** True if this element is a reader or a writer for a constant, shared, or object attribute.
is_attr_reader:BOOL
**** True if self is the reader routine for an object attribute.
is_attr_writer:BOOL
**** True if self is the writer routine for an object attribute.
is_const_reader:BOOL
**** True if self is the reader routine for a constant attribute.
is_invariant:BOOL
**** True if this element describes a routine of the form `invariant:BOOL'.
is_iter:BOOL
**** True if self is an iter.
is_shared_reader:BOOL
**** True if self is the reader routine for a shared attribute.
is_shared_writer:BOOL
**** True if self is the writer routine for a shared attribute.
name:IDENT
**** The name of the feature represented by this element.
prog:PROG
**** The program that this element belongs to.
ret:$TP
**** The return type, if any.
tp:$TP
**** The type this element comes from.