From d575e585389b025d7b8056bcb43fea67dddd15d0 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sat, 10 Sep 2016 20:58:34 +0200 Subject: Make inline a keyword `inline` is now a modifier keyword. To keep disruption tolerable, we still allow `@inline` as an annotation as well. Other uses of `inline` are supported only under `-language:Scala2` and are rewritten to identifiers in backticks. --- tests/neg/inlineAccess/C_1.scala | 3 +-- tests/pos/rbtree.scala | 10 +++++----- tests/run/inline/inlines_1.scala | 12 +++++------- tests/run/inlineLazy.scala | 6 ------ tests/run/inlinePower/power_1.scala | 3 +-- tests/run/inlinePrivates.scala | 32 +++++++------------------------- tests/run/inlinedAssign.scala | 6 +++--- 7 files changed, 22 insertions(+), 50 deletions(-) delete mode 100644 tests/run/inlineLazy.scala (limited to 'tests') diff --git a/tests/neg/inlineAccess/C_1.scala b/tests/neg/inlineAccess/C_1.scala index 6db1ea787..349f5b150 100644 --- a/tests/neg/inlineAccess/C_1.scala +++ b/tests/neg/inlineAccess/C_1.scala @@ -2,7 +2,6 @@ package p { class C { protected def f(): Unit = () - @inline - def inl() = f() // error (when inlined): not accessible + inline def inl() = f() // error (when inlined): not accessible } } diff --git a/tests/pos/rbtree.scala b/tests/pos/rbtree.scala index 1401a1231..04c084596 100644 --- a/tests/pos/rbtree.scala +++ b/tests/pos/rbtree.scala @@ -430,12 +430,12 @@ object RedBlackTree { * An alternative is to implement the these classes using plain old Java code... */ sealed abstract class Tree[A, +B]( - @(inline @getter) final val key: A, - @(inline @getter) final val value: B, - @(inline @getter) final val left: Tree[A, B], - @(inline @getter) final val right: Tree[A, B]) + @(`inline` @getter) final val key: A, + @(`inline` @getter) final val value: B, + @(`inline` @getter) final val left: Tree[A, B], + @(`inline` @getter) final val right: Tree[A, B]) extends Serializable { - @(inline @getter) final val count: Int = 1 + RedBlackTree.count(left) + RedBlackTree.count(right) + @(`inline` @getter) final val count: Int = 1 + RedBlackTree.count(left) + RedBlackTree.count(right) def black: Tree[A, B] def red: Tree[A, B] } diff --git a/tests/run/inline/inlines_1.scala b/tests/run/inline/inlines_1.scala index 8189e6805..24f1c78fe 100644 --- a/tests/run/inline/inlines_1.scala +++ b/tests/run/inline/inlines_1.scala @@ -5,8 +5,7 @@ object inlines { final val monitored = false - @inline - def f(x: Int): Int = x * x + inline def f(x: Int): Int = x * x val hits = new mutable.HashMap[String, Int] { override def default(key: String): Int = 0 @@ -21,8 +20,7 @@ object inlines { @volatile private var stack: List[String] = Nil - @inline - def track[T](fn: String)(op: => T) = + inline def track[T](fn: String)(op: => T) = if (monitored) { stack = fn :: stack record(fn) @@ -34,9 +32,9 @@ object inlines { def f = "Outer.f" class Inner { val msg = " Inner" - @inline def m = msg - @inline def g = f - @inline def h = f ++ m + inline def m = msg + inline def g = f + inline def h = f ++ m } val inner = new Inner } diff --git a/tests/run/inlineLazy.scala b/tests/run/inlineLazy.scala deleted file mode 100644 index a8aa92498..000000000 --- a/tests/run/inlineLazy.scala +++ /dev/null @@ -1,6 +0,0 @@ -class Test { - - lazy val x: Int = 33 - - println(x) -} diff --git a/tests/run/inlinePower/power_1.scala b/tests/run/inlinePower/power_1.scala index 23da6009a..4e96d7caa 100644 --- a/tests/run/inlinePower/power_1.scala +++ b/tests/run/inlinePower/power_1.scala @@ -2,8 +2,7 @@ package p object pow { - @inline - def power(x: Double, n: Int): Double = + inline def power(x: Double, n: Int): Double = if (n == 0) 1.0 else if (n == 1) x else { diff --git a/tests/run/inlinePrivates.scala b/tests/run/inlinePrivates.scala index ade4592df..ce438ae8d 100644 --- a/tests/run/inlinePrivates.scala +++ b/tests/run/inlinePrivates.scala @@ -6,19 +6,19 @@ object Test { private var y: T = _ - @inline def get1 = x - @inline def get2[U](c: C[U]) = c.x + inline def get1 = x + inline def get2[U](c: C[U]) = c.x - @inline def foo1(x: Int) = foo(x) - @inline def foo2[U](c: C[U]) = c.foo(x) + inline def foo1(x: Int) = foo(x) + inline def foo2[U](c: C[U]) = c.foo(x) - @inline def set1(z: T) = { y = z; y } - @inline def set2[U](c: C[U]) = { c.y = c.x; c.y } + inline def set1(z: T) = { y = z; y } + inline def set2[U](c: C[U]) = { c.y = c.x; c.y } } object CC { private val x = 3 - @inline def get1 = x + inline def get1 = x } def main(args: Array[String]) = { @@ -29,24 +29,6 @@ object Test { assert(cc.foo2(cc) == 2) assert(cc.set1(3) == 3) assert(cc.set2(cc) == 2) -object Test { - - @inline - def swap[T](x: T, x_= : T => Unit, y: T, y_= : T => Unit) = { - val t = x - x_=(y) - y_=(t) - } - - def main(args: Array[String]) = { - var x = 1 - var y = 2 - @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) - } -} assert(CC.get1 == 3) } diff --git a/tests/run/inlinedAssign.scala b/tests/run/inlinedAssign.scala index b9a5d287d..bb81aea26 100644 --- a/tests/run/inlinedAssign.scala +++ b/tests/run/inlinedAssign.scala @@ -1,6 +1,6 @@ object Test { - @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 - @inline def setX(z: Int) = x = z - @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) } -- cgit v1.2.3