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
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 beTypeTrees if they don't have term parameter, otherwise the can beTermcontaining theNewapplied 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