summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Cunei <antonio.cunei@epfl.ch>2010-06-16 08:56:35 +0000
committerAntonio Cunei <antonio.cunei@epfl.ch>2010-06-16 08:56:35 +0000
commite0bb63d7a8ca354ba91e77dd042c69b2e0b1c339 (patch)
tree09832313486b5621f17f3c2d8e51ec0292254c26
parent707078efcd40f9eb544018108a726a39d5bbdd06 (diff)
downloadscala-e0bb63d7a8ca354ba91e77dd042c69b2e0b1c339.tar.gz
scala-e0bb63d7a8ca354ba91e77dd042c69b2e0b1c339.tar.bz2
scala-e0bb63d7a8ca354ba91e77dd042c69b2e0b1c339.zip
Manual patch from paulp to address #3420 on 2.8.x
-rw-r--r--src/compiler/scala/tools/nsc/backend/opt/Inliners.scala5
-rw-r--r--test/files/pos/bug3420.flags1
-rw-r--r--test/files/pos/bug3420.scala5
3 files changed, 10 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala
index 9c1489a637..5e9898a7e6 100644
--- a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala
+++ b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala
@@ -303,7 +303,10 @@ abstract class Inliners extends SubComponent {
do {
retry = false;
- if (m.code ne null) {
+ if (m.symbol.hasAnnotation(ScalaInlineAttr)) {
+ log("Not inlining into " + m.symbol.originalName.decode + " because it is marked @inline.")
+ }
+ else if (m.code ne null) {
log("Analyzing " + m + " count " + count + " with " + m.code.blocks.length + " blocks");
tfa.init(m)
tfa.run
diff --git a/test/files/pos/bug3420.flags b/test/files/pos/bug3420.flags
new file mode 100644
index 0000000000..ea03113c66
--- /dev/null
+++ b/test/files/pos/bug3420.flags
@@ -0,0 +1 @@
+-optimise -Xfatal-warnings \ No newline at end of file
diff --git a/test/files/pos/bug3420.scala b/test/files/pos/bug3420.scala
new file mode 100644
index 0000000000..0fc56ed67b
--- /dev/null
+++ b/test/files/pos/bug3420.scala
@@ -0,0 +1,5 @@
+class C {
+ val cv = Map[Int, Int](1 -> 2)
+ lazy val cl = Map[Int, Int](1 -> 2)
+ def cd = Map[Int, Int](1 -> 2)
+}