scala.tools.nsc.typechecker.MethodSynthesis
This trait assembles what's needed for synthesizing derived methods.
A synthetic method which performs the implicit conversion implied by the declaration of an implicit class.
(Since version 2.10.0) Use leftOfArrow instead
(Since version 2.10.0) Use resultOfEnsuring instead
There are two key methods in here.
1) Enter methods such as enterGetterSetterare called from Namer with a tree which may generate further trees such as accessors or implicit wrappers. Some setup is performed. In general this creates symbols and enters them into the scope of the owner.
2) addDerivedTrees is called from Typer when a Template is typed. It completes the job, returning a list of trees with their symbols set to those created in the enter methods. Those trees then become part of the typed template.