diff options
author | Martin Odersky <odersky@gmail.com> | 2016-09-06 13:20:39 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-10-02 16:11:21 +0200 |
commit | 19ab7ab10fabe7113f45063ffd2b6cc6abcc3329 (patch) | |
tree | 3672315832460f5d636074fc2c387d243597cff5 /tests/run/inlinedAssign.scala | |
parent | bd0660ef100ee1a41bd56267d9e95c9e6dd74d5e (diff) | |
download | dotty-19ab7ab10fabe7113f45063ffd2b6cc6abcc3329.tar.gz dotty-19ab7ab10fabe7113f45063ffd2b6cc6abcc3329.tar.bz2 dotty-19ab7ab10fabe7113f45063ffd2b6cc6abcc3329.zip |
Make inline annotation @scala.inline.
Drop @dotty.annotation.inline. This will inline all
@inline marked methods in Scala for which a body is known
(i.e. that are either compiled in the same run or have Tasty
trees available).
Option -Yno-inline suppresses inlining. This is needed for
the moment because some @inline methods access private members
or members that are otherwise inaccessible at the call-site.
Also fixes some problems in Inliner
- make sure type arguments to inline calls re fully defined
- don't forget recursive calls in typeMap
- don't forget positions in treeMap
- drop dead code dealing with outer.
Diffstat (limited to 'tests/run/inlinedAssign.scala')
-rw-r--r-- | tests/run/inlinedAssign.scala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tests/run/inlinedAssign.scala b/tests/run/inlinedAssign.scala index 735158209..b9a5d287d 100644 --- a/tests/run/inlinedAssign.scala +++ b/tests/run/inlinedAssign.scala @@ -1,6 +1,6 @@ object Test { - @dotty.annotation.inline + @inline def swap[T](x: T, x_= : T => Unit, y: T, y_= : T => Unit) = { val t = x x_=(y) @@ -10,8 +10,8 @@ object Test { def main(args: Array[String]) = { var x = 1 var y = 2 - @dotty.annotation.inline def setX(z: Int) = x = z - @dotty.annotation.inline def setY(z: Int) = y = z + @inline def setX(z: Int) = x = z + @inline def setY(z: Int) = y = z swap[Int](x, setX, y, setY) assert(x == 2 && y == 1) } |