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