ClassDefModule
Methods of the module object val ClassDef
Attributes
- Source
- Quotes.scala
- Graph
-
- Supertypes
- Self type
Members list
Value members
Abstract methods
Attributes
- Source
- Quotes.scala
Experimental methods
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 beTypeTree
s if they don't have term parameter, otherwise the can beTerm
containing theNew
applied to the parameters of the extended class.
Attributes
- Experimental
- true
- Source
- Quotes.scala
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
- Quotes.scala