summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/TreeGen.scala
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2011-09-23 14:22:13 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2011-09-23 14:22:13 +0000
commit1111b27d0eb95d69d7507291d242817a2dbe7e64 (patch)
treea93f609f79877a503d501e9278479a695dbca859 /src/compiler/scala/tools/nsc/ast/TreeGen.scala
parent7dc4723db3b8d435a5596db9de3e0378e023c8df (diff)
downloadscala-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.scala14
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