summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2010-01-12 16:55:26 +0000
committerIulian Dragos <jaguarul@gmail.com>2010-01-12 16:55:26 +0000
commitd75264a14a560e1655c59dcfa1152882f2bad807 (patch)
tree17789181cc31132e3cfae178577c498c3f41a118 /src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala
parent335f62ba638b462976cef74e43276c71b5f0fbc8 (diff)
downloadscala-d75264a14a560e1655c59dcfa1152882f2bad807.tar.gz
scala-d75264a14a560e1655c59dcfa1152882f2bad807.tar.bz2
scala-d75264a14a560e1655c59dcfa1152882f2bad807.zip
Updated attempt at removing @inline warnings:
- fixed a bug in closure elimination causing VerifyErrors - fixed a broken assert in GenICode that fired when -Ydebug was used - added final modifiers
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala')
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala
index 4f0da17bb3..8a65875fbf 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala
@@ -146,10 +146,12 @@ abstract class CopyPropagation {
target match {
case Deref(LocalVar(l)) =>
val alias = getAlias(l)
+ val derefAlias = Deref(LocalVar(alias))
getBinding(alias) match {
- case Record(_, _) => Some(Deref(LocalVar(alias)))
+ case Record(_, _) => Some(derefAlias)
case Deref(Field(r1, f1)) =>
- getFieldNonRecordValue(r1, f1) orElse Some(Deref(LocalVar(alias)))
+ getFieldNonRecordValue(r1, f1) orElse Some(derefAlias)
+ case Boxed(_) => Some(derefAlias)
case v => Some(v)
}
case Deref(Field(r1, f1)) =>