diff options
author | Antonio Cunei <antonio.cunei@epfl.ch> | 2010-06-16 08:56:35 +0000 |
---|---|---|
committer | Antonio Cunei <antonio.cunei@epfl.ch> | 2010-06-16 08:56:35 +0000 |
commit | e0bb63d7a8ca354ba91e77dd042c69b2e0b1c339 (patch) | |
tree | 09832313486b5621f17f3c2d8e51ec0292254c26 | |
parent | 707078efcd40f9eb544018108a726a39d5bbdd06 (diff) | |
download | scala-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.scala | 5 | ||||
-rw-r--r-- | test/files/pos/bug3420.flags | 1 | ||||
-rw-r--r-- | test/files/pos/bug3420.scala | 5 |
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) +} |