A class reference expression, that is,
the name
of a class or anonymous class,
qualified by a (possibly empty) qualifier
(separated from it by a member operator ‘.
’),
or empty for the current class,
prefixed by the type keyword class
and surrounded by backticks.
The name
may be an LIdentifier
to refer to the class declaration of an anonymous class.
For example, in
value dec1 = `class null`; value dec2 = `value null`;
dec1
refers to the anonymous class of the null
object, while
dec2
refers to the only instance of that class, the null
object itself.
The qualifier
may only be null if the name
is also null.
If the name exists, the qualifier must exist as well (but may of course be empty).
Examples:
`class String` `class A.B.C` `class`
Anything
ClassDec
TypeDec
Dec
Primary
ValueExpression
Expression
Node
Object
Anything
no subtypes hierarchy
Initializer |
ClassDec(Identifier? name, DecQualifier? qualifier = ...) Parameters:
|
Attributes | |
children | Source Codeshared actual <DecQualifier|Identifier>[] children The child nodes of this node. |
hash | Source Codeshared actual Integer hash The hash value of the value, which allows the value to be an element of a hash-based set or key of a hash-based map. Implementations must respect the constraint that:
Therefore, a class which refines In general, Note that when executing on a Java Virtual Machine, the
64-bit Refines Object.hash |
keyword | Source Codeshared actual String keyword The keyword of the declaration literal, that is:
Refines Dec.keyword |
name | Source Codeshared actual Identifier? name The name of the declaration,
or Refines TypeDec.name |
qualifier | Source Codeshared actual DecQualifier? qualifier The qualifier of the dec, if present. Refines TypeDec.qualifier |
Inherited Attributes |
Attributes inherited from: Dec |
Attributes inherited from: Expression |
Attributes inherited from: Node |
Attributes inherited from: Object hash , string |
Attributes inherited from: TypeDec |
Methods | |
copy | Source Codeshared ClassDec copy(Identifier? name = ..., DecQualifier? qualifier = ...) Parameters:
|
equals | Source Codeshared actual Boolean equals(Object that) Determine if two values are equal. For any two non-null objects x == y Implementations should respect the constraints that:
Furthermore it is recommended that implementations
ensure that if A class which explicitly refines Note that an implementation of Refines Object.equals |
transform | Source Codeshared actual Result transform<out Result>(Transformer<Result> transformer) Transform this node with the given If you have a Refines Node.transform |
visit | Source Codeshared actual void visit(Visitor visitor) Visit this node with the given Refines Node.visit |
Inherited Methods |
Methods inherited from: Node |
Methods inherited from: Object equals |