ClassDefModule (original) (raw)
scala.quoted.Quotes.reflectModule.ClassDefModule
Methods of the module object val ClassDef
Attributes
Source
Graph
Supertypes
Self type
Members list
Create a class definition tree
Create a class definition tree
Value parameters
body
List of members of the class. The members must align with the members of cls
.
cls
The class symbol. A new class symbol can be created using Symbol.newClass
.
parents
The parents trees class. The trees must align with the parent types of cls
. Parents can be TypeTree
s if they don't have term parameter, otherwise the can be Term
containing the New
applied to the parameters of the extended class.
Attributes
Experimental
true
Source
Create the ValDef and ClassDef of a module (equivalent to an object
declaration in source code).
Create the ValDef and ClassDef of a module (equivalent to an object
declaration in source code).
Equivalent to
def module(module: Symbol, parents: List[Tree], body: List[Statement]): (ValDef, ClassDef) =
val modCls = module.moduleClass
val modClassDef = ClassDef(modCls, parents, body)
val modValDef = ValDef(module, Some(Apply(Select(New(TypeIdent(modCls)), cls.primaryConstructor), Nil)))
List(modValDef, modClassDef)
Value parameters
body
body of the module class
module
the module symbol (created using Symbol.newModule
)
parents
parents of the module class
Attributes
Returns
The module lazy val definition and module class definition. These should be added one after the other (in that order) in the body of a class or statements of a block.
Experimental
true
Source
In this article