A regular compilation unit, containing toplevel type, value, or function definitions.
This is the most commonly used type of compilation unit, and the basic “container” for your declarations.
Examples:
void run() { print("Hello, World!"); } // end of example, start of next example import ceylon.collection { SetMutator } MyPlugin myPlugin = MyPlugin(); // only instance register shared void registerMyPlugin(SetMutator<Plugin> registry) => registry.put(myPlugin);
Anything
CompilationUnit
AnyCompilationUnit
Node
Object
Anything
no subtypes hierarchy
Initializer |
CompilationUnit(Declaration[] declarations, Import[] imports = ...) Parameters:
|
Attributes | |
children | Source Codeshared actual <Import|Declaration>[] children The child nodes of this node. |
declarations | Source Codeshared actual Declaration[] declarations The declarations in this compilation unit. (This attribute is empty for non-regular compilation units.) Refines AnyCompilationUnit.declarations |
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 |
imports | Source Codeshared actual Import[] imports The imports of this compilation unit. Refines AnyCompilationUnit.imports |
moduleDescriptor | Source Codeshared actual Null moduleDescriptor Regular compilation units contain no module descriptor. |
packageDescriptor | Source Codeshared actual Null packageDescriptor Regular compilation units contain no package descriptor. |
Inherited Attributes |
Attributes inherited from: AnyCompilationUnit |
Attributes inherited from: Node |
Attributes inherited from: Object hash , string |
Methods | |
copy | Source Codeshared CompilationUnit copy(Declaration[] declarations = ..., Import[] imports = ...) 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 |