diff options
author | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2011-09-23 14:22:13 +0000 |
---|---|---|
committer | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2011-09-23 14:22:13 +0000 |
commit | 1111b27d0eb95d69d7507291d242817a2dbe7e64 (patch) | |
tree | a93f609f79877a503d501e9278479a695dbca859 /src/compiler/scala/tools/nsc/ast/TreeGen.scala | |
parent | 7dc4723db3b8d435a5596db9de3e0378e023c8df (diff) | |
download | scala-1111b27d0eb95d69d7507291d242817a2dbe7e64.tar.gz scala-1111b27d0eb95d69d7507291d242817a2dbe7e64.tar.bz2 scala-1111b27d0eb95d69d7507291d242817a2dbe7e64.zip |
Back to square one.
Current design of error trees complicates the design of reflection
library, and introduces sometimes unnecessary boilerplate and since I
do not want to stall that work I am reverting all the changes related
to error trees. A different design is currently under consideration but
work will be done on separate branch on github.
Revisions that got reverted:
r25705, r25704 (partially), r25673, r25669, r25649, r25644, r25621, r25620, r25619
Review by odersky and extempore.
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/TreeGen.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/TreeGen.scala | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/TreeGen.scala b/src/compiler/scala/tools/nsc/ast/TreeGen.scala index 2b6f5c241f..bec488ab72 100644 --- a/src/compiler/scala/tools/nsc/ast/TreeGen.scala +++ b/src/compiler/scala/tools/nsc/ast/TreeGen.scala @@ -191,21 +191,15 @@ abstract class TreeGen extends reflect.internal.TreeGen { * symbol to its packed type, and an function for creating Idents * which refer to it. */ - private def mkPackedValDef(expr: Tree, owner: Symbol, name: Name): (Tree, () => Ident) = { - val (packedType, errs) = typer.packedType(expr, owner) - // TODO ensure that they don't throw errors? - errs.foreach(_.emit(typer.context)) + private def mkPackedValDef(expr: Tree, owner: Symbol, name: Name): (ValDef, () => Ident) = { + val packedType = typer.packedType(expr, owner) val sym = ( owner.newValue(expr.pos.makeTransparent, name) setFlag SYNTHETIC setInfo packedType ) - val identFn = () => Ident(sym) setPos sym.pos.focus setType expr.tpe - if (errs.isEmpty) - (ValDef(sym, expr), identFn) - else - (analyzer.PendingErrors(errs), identFn) + (ValDef(sym, expr), () => Ident(sym) setPos sym.pos.focus setType expr.tpe) } /** Used in situations where you need to access value of an expression several times @@ -224,7 +218,7 @@ abstract class TreeGen extends reflect.internal.TreeGen { } def evalOnceAll(exprs: List[Tree], owner: Symbol, unit: CompilationUnit)(within: (List[() => Tree]) => Tree): Tree = { - val vdefs = new ListBuffer[Tree] + val vdefs = new ListBuffer[ValDef] val exprs1 = new ListBuffer[() => Tree] val used = new Array[Boolean](exprs.length) var i = 0 |