From 814cf34fb00f9ccb001249f4b3445ebc4f9942c9 Mon Sep 17 00:00:00 2001 From: Eugene Burmako Date: Thu, 12 Apr 2012 01:59:46 +0200 Subject: Next generation of macros Implements SIP 16: Self-cleaning macros: http://bit.ly/wjjXTZ Features: * Macro defs * Reification * Type tags * Manifests aliased to type tags * Extended reflection API * Several hundred tests * 1111 changed files Not yet implemented: * Reification of refined types * Expr.value splicing * Named and default macro expansions * Intricacies of interaction between macros and implicits * Emission of debug information for macros (compliant with JSR-45) Dedicated to Yuri Alekseyevich Gagarin --- test/files/neg/macro-without-xmacros-b/Macros_2.scala | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 test/files/neg/macro-without-xmacros-b/Macros_2.scala (limited to 'test/files/neg/macro-without-xmacros-b/Macros_2.scala') diff --git a/test/files/neg/macro-without-xmacros-b/Macros_2.scala b/test/files/neg/macro-without-xmacros-b/Macros_2.scala new file mode 100644 index 0000000000..de7080c7e8 --- /dev/null +++ b/test/files/neg/macro-without-xmacros-b/Macros_2.scala @@ -0,0 +1,10 @@ +object Macros { + object Shmacros { + def foo(x: Int): Int = macro Impls.foo_impl + } + def bar(x: Int): Int = macro Impls.bar_impl +} + +class Macros { + def quux(x: Int): Int = macro Impls.quux_impl +} \ No newline at end of file -- cgit v1.2.3 From e9280cba72d322973b14f3bc97cd43e423774144 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Fri, 13 Apr 2012 16:57:48 -0700 Subject: Disabled macro neg tests that no longer make sense in this form --- ...cro-deprecate-dont-touch-backquotedidents.check | 10 ++++ ...cro-deprecate-dont-touch-backquotedidents.flags | 1 + ...cro-deprecate-dont-touch-backquotedidents.scala | 56 ++++++++++++++++++++++ test/disabled/neg/macro-invalidshape-d.check | 4 ++ test/disabled/neg/macro-invalidshape-d.flags | 1 + .../neg/macro-invalidshape-d/Impls_1.scala | 5 ++ .../neg/macro-invalidshape-d/Macros_Test_2.scala | 8 ++++ test/disabled/neg/macro-keyword-bind.check | 7 +++ test/disabled/neg/macro-keyword-bind.flags | 1 + test/disabled/neg/macro-keyword-bind.scala | 6 +++ test/disabled/neg/macro-keyword-class1.check | 4 ++ test/disabled/neg/macro-keyword-class1.flags | 1 + test/disabled/neg/macro-keyword-class1.scala | 3 ++ test/disabled/neg/macro-keyword-class2.check | 4 ++ test/disabled/neg/macro-keyword-class2.flags | 1 + test/disabled/neg/macro-keyword-class2.scala | 3 ++ test/disabled/neg/macro-keyword-object1.check | 4 ++ test/disabled/neg/macro-keyword-object1.flags | 1 + test/disabled/neg/macro-keyword-object1.scala | 3 ++ test/disabled/neg/macro-keyword-object2.check | 4 ++ test/disabled/neg/macro-keyword-object2.flags | 1 + test/disabled/neg/macro-keyword-object2.scala | 3 ++ test/disabled/neg/macro-keyword-package1.check | 4 ++ test/disabled/neg/macro-keyword-package1.flags | 1 + test/disabled/neg/macro-keyword-package1.scala | 3 ++ test/disabled/neg/macro-keyword-package2.check | 4 ++ test/disabled/neg/macro-keyword-package2.flags | 1 + test/disabled/neg/macro-keyword-package2.scala | 3 ++ test/disabled/neg/macro-keyword-trait1.check | 4 ++ test/disabled/neg/macro-keyword-trait1.flags | 1 + test/disabled/neg/macro-keyword-trait1.scala | 3 ++ test/disabled/neg/macro-keyword-trait2.check | 4 ++ test/disabled/neg/macro-keyword-trait2.flags | 1 + test/disabled/neg/macro-keyword-trait2.scala | 3 ++ test/disabled/neg/macro-keyword-type.check | 4 ++ test/disabled/neg/macro-keyword-type.flags | 1 + test/disabled/neg/macro-keyword-type.scala | 3 ++ test/disabled/neg/macro-keyword-val.check | 7 +++ test/disabled/neg/macro-keyword-val.flags | 1 + test/disabled/neg/macro-keyword-val.scala | 3 ++ test/disabled/neg/macro-keyword-var.check | 7 +++ test/disabled/neg/macro-keyword-var.flags | 1 + test/disabled/neg/macro-keyword-var.scala | 3 ++ test/disabled/neg/macro-without-xmacros-a.check | 10 ++++ .../neg/macro-without-xmacros-a/Impls_1.scala | 18 +++++++ .../neg/macro-without-xmacros-a/Macros_2.scala | 12 +++++ .../neg/macro-without-xmacros-a/Test_3.scala | 4 ++ test/disabled/neg/macro-without-xmacros-b.check | 10 ++++ .../neg/macro-without-xmacros-b/Impls_1.scala | 18 +++++++ .../neg/macro-without-xmacros-b/Macros_2.scala | 10 ++++ .../neg/macro-without-xmacros-b/Test_3.scala | 4 ++ ...cro-deprecate-dont-touch-backquotedidents.check | 10 ---- ...cro-deprecate-dont-touch-backquotedidents.flags | 1 - ...cro-deprecate-dont-touch-backquotedidents.scala | 56 ---------------------- test/files/neg/macro-invalidshape-d.check | 4 -- test/files/neg/macro-invalidshape-d.flags | 1 - test/files/neg/macro-invalidshape-d/Impls_1.scala | 5 -- .../neg/macro-invalidshape-d/Macros_Test_2.scala | 8 ---- test/files/neg/macro-keyword-bind.check | 7 --- test/files/neg/macro-keyword-bind.flags | 1 - test/files/neg/macro-keyword-bind.scala | 6 --- test/files/neg/macro-keyword-class1.check | 4 -- test/files/neg/macro-keyword-class1.flags | 1 - test/files/neg/macro-keyword-class1.scala | 3 -- test/files/neg/macro-keyword-class2.check | 4 -- test/files/neg/macro-keyword-class2.flags | 1 - test/files/neg/macro-keyword-class2.scala | 3 -- test/files/neg/macro-keyword-object1.check | 4 -- test/files/neg/macro-keyword-object1.flags | 1 - test/files/neg/macro-keyword-object1.scala | 3 -- test/files/neg/macro-keyword-object2.check | 4 -- test/files/neg/macro-keyword-object2.flags | 1 - test/files/neg/macro-keyword-object2.scala | 3 -- test/files/neg/macro-keyword-package1.check | 4 -- test/files/neg/macro-keyword-package1.flags | 1 - test/files/neg/macro-keyword-package1.scala | 3 -- test/files/neg/macro-keyword-package2.check | 4 -- test/files/neg/macro-keyword-package2.flags | 1 - test/files/neg/macro-keyword-package2.scala | 3 -- test/files/neg/macro-keyword-trait1.check | 4 -- test/files/neg/macro-keyword-trait1.flags | 1 - test/files/neg/macro-keyword-trait1.scala | 3 -- test/files/neg/macro-keyword-trait2.check | 4 -- test/files/neg/macro-keyword-trait2.flags | 1 - test/files/neg/macro-keyword-trait2.scala | 3 -- test/files/neg/macro-keyword-type.check | 4 -- test/files/neg/macro-keyword-type.flags | 1 - test/files/neg/macro-keyword-type.scala | 3 -- test/files/neg/macro-keyword-val.check | 7 --- test/files/neg/macro-keyword-val.flags | 1 - test/files/neg/macro-keyword-val.scala | 3 -- test/files/neg/macro-keyword-var.check | 7 --- test/files/neg/macro-keyword-var.flags | 1 - test/files/neg/macro-keyword-var.scala | 3 -- test/files/neg/macro-without-xmacros-a.check | 10 ---- .../neg/macro-without-xmacros-a/Impls_1.scala | 18 ------- .../neg/macro-without-xmacros-a/Macros_2.scala | 12 ----- .../files/neg/macro-without-xmacros-a/Test_3.scala | 4 -- test/files/neg/macro-without-xmacros-b.check | 10 ---- .../neg/macro-without-xmacros-b/Impls_1.scala | 18 ------- .../neg/macro-without-xmacros-b/Macros_2.scala | 10 ---- .../files/neg/macro-without-xmacros-b/Test_3.scala | 4 -- 102 files changed, 279 insertions(+), 279 deletions(-) create mode 100644 test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.check create mode 100644 test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.flags create mode 100644 test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.scala create mode 100644 test/disabled/neg/macro-invalidshape-d.check create mode 100644 test/disabled/neg/macro-invalidshape-d.flags create mode 100644 test/disabled/neg/macro-invalidshape-d/Impls_1.scala create mode 100644 test/disabled/neg/macro-invalidshape-d/Macros_Test_2.scala create mode 100644 test/disabled/neg/macro-keyword-bind.check create mode 100644 test/disabled/neg/macro-keyword-bind.flags create mode 100644 test/disabled/neg/macro-keyword-bind.scala create mode 100644 test/disabled/neg/macro-keyword-class1.check create mode 100644 test/disabled/neg/macro-keyword-class1.flags create mode 100644 test/disabled/neg/macro-keyword-class1.scala create mode 100644 test/disabled/neg/macro-keyword-class2.check create mode 100644 test/disabled/neg/macro-keyword-class2.flags create mode 100644 test/disabled/neg/macro-keyword-class2.scala create mode 100644 test/disabled/neg/macro-keyword-object1.check create mode 100644 test/disabled/neg/macro-keyword-object1.flags create mode 100644 test/disabled/neg/macro-keyword-object1.scala create mode 100644 test/disabled/neg/macro-keyword-object2.check create mode 100644 test/disabled/neg/macro-keyword-object2.flags create mode 100644 test/disabled/neg/macro-keyword-object2.scala create mode 100644 test/disabled/neg/macro-keyword-package1.check create mode 100644 test/disabled/neg/macro-keyword-package1.flags create mode 100644 test/disabled/neg/macro-keyword-package1.scala create mode 100644 test/disabled/neg/macro-keyword-package2.check create mode 100644 test/disabled/neg/macro-keyword-package2.flags create mode 100644 test/disabled/neg/macro-keyword-package2.scala create mode 100644 test/disabled/neg/macro-keyword-trait1.check create mode 100644 test/disabled/neg/macro-keyword-trait1.flags create mode 100644 test/disabled/neg/macro-keyword-trait1.scala create mode 100644 test/disabled/neg/macro-keyword-trait2.check create mode 100644 test/disabled/neg/macro-keyword-trait2.flags create mode 100644 test/disabled/neg/macro-keyword-trait2.scala create mode 100644 test/disabled/neg/macro-keyword-type.check create mode 100644 test/disabled/neg/macro-keyword-type.flags create mode 100644 test/disabled/neg/macro-keyword-type.scala create mode 100644 test/disabled/neg/macro-keyword-val.check create mode 100644 test/disabled/neg/macro-keyword-val.flags create mode 100644 test/disabled/neg/macro-keyword-val.scala create mode 100644 test/disabled/neg/macro-keyword-var.check create mode 100644 test/disabled/neg/macro-keyword-var.flags create mode 100644 test/disabled/neg/macro-keyword-var.scala create mode 100644 test/disabled/neg/macro-without-xmacros-a.check create mode 100644 test/disabled/neg/macro-without-xmacros-a/Impls_1.scala create mode 100644 test/disabled/neg/macro-without-xmacros-a/Macros_2.scala create mode 100644 test/disabled/neg/macro-without-xmacros-a/Test_3.scala create mode 100644 test/disabled/neg/macro-without-xmacros-b.check create mode 100644 test/disabled/neg/macro-without-xmacros-b/Impls_1.scala create mode 100644 test/disabled/neg/macro-without-xmacros-b/Macros_2.scala create mode 100644 test/disabled/neg/macro-without-xmacros-b/Test_3.scala delete mode 100644 test/files/neg/macro-deprecate-dont-touch-backquotedidents.check delete mode 100644 test/files/neg/macro-deprecate-dont-touch-backquotedidents.flags delete mode 100644 test/files/neg/macro-deprecate-dont-touch-backquotedidents.scala delete mode 100644 test/files/neg/macro-invalidshape-d.check delete mode 100644 test/files/neg/macro-invalidshape-d.flags delete mode 100644 test/files/neg/macro-invalidshape-d/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidshape-d/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-keyword-bind.check delete mode 100644 test/files/neg/macro-keyword-bind.flags delete mode 100644 test/files/neg/macro-keyword-bind.scala delete mode 100644 test/files/neg/macro-keyword-class1.check delete mode 100644 test/files/neg/macro-keyword-class1.flags delete mode 100644 test/files/neg/macro-keyword-class1.scala delete mode 100644 test/files/neg/macro-keyword-class2.check delete mode 100644 test/files/neg/macro-keyword-class2.flags delete mode 100644 test/files/neg/macro-keyword-class2.scala delete mode 100644 test/files/neg/macro-keyword-object1.check delete mode 100644 test/files/neg/macro-keyword-object1.flags delete mode 100644 test/files/neg/macro-keyword-object1.scala delete mode 100644 test/files/neg/macro-keyword-object2.check delete mode 100644 test/files/neg/macro-keyword-object2.flags delete mode 100644 test/files/neg/macro-keyword-object2.scala delete mode 100644 test/files/neg/macro-keyword-package1.check delete mode 100644 test/files/neg/macro-keyword-package1.flags delete mode 100644 test/files/neg/macro-keyword-package1.scala delete mode 100644 test/files/neg/macro-keyword-package2.check delete mode 100644 test/files/neg/macro-keyword-package2.flags delete mode 100644 test/files/neg/macro-keyword-package2.scala delete mode 100644 test/files/neg/macro-keyword-trait1.check delete mode 100644 test/files/neg/macro-keyword-trait1.flags delete mode 100644 test/files/neg/macro-keyword-trait1.scala delete mode 100644 test/files/neg/macro-keyword-trait2.check delete mode 100644 test/files/neg/macro-keyword-trait2.flags delete mode 100644 test/files/neg/macro-keyword-trait2.scala delete mode 100644 test/files/neg/macro-keyword-type.check delete mode 100644 test/files/neg/macro-keyword-type.flags delete mode 100644 test/files/neg/macro-keyword-type.scala delete mode 100644 test/files/neg/macro-keyword-val.check delete mode 100644 test/files/neg/macro-keyword-val.flags delete mode 100644 test/files/neg/macro-keyword-val.scala delete mode 100644 test/files/neg/macro-keyword-var.check delete mode 100644 test/files/neg/macro-keyword-var.flags delete mode 100644 test/files/neg/macro-keyword-var.scala delete mode 100644 test/files/neg/macro-without-xmacros-a.check delete mode 100644 test/files/neg/macro-without-xmacros-a/Impls_1.scala delete mode 100644 test/files/neg/macro-without-xmacros-a/Macros_2.scala delete mode 100644 test/files/neg/macro-without-xmacros-a/Test_3.scala delete mode 100644 test/files/neg/macro-without-xmacros-b.check delete mode 100644 test/files/neg/macro-without-xmacros-b/Impls_1.scala delete mode 100644 test/files/neg/macro-without-xmacros-b/Macros_2.scala delete mode 100644 test/files/neg/macro-without-xmacros-b/Test_3.scala (limited to 'test/files/neg/macro-without-xmacros-b/Macros_2.scala') diff --git a/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.check b/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.check new file mode 100644 index 0000000000..25df9a6a4a --- /dev/null +++ b/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.check @@ -0,0 +1,10 @@ +macro-deprecate-dont-touch-backquotedidents.scala:37: error: in future versions of Scala "macro" will be a keyword. consider using a different name. +package `macro` { + ^ +macro-deprecate-dont-touch-backquotedidents.scala:38: error: in future versions of Scala "macro" will be a keyword. consider using a different name. + package `macro`.bar { + ^ +macro-deprecate-dont-touch-backquotedidents.scala:43: error: in future versions of Scala "macro" will be a keyword. consider using a different name. + package `macro`.foo { + ^ +three errors found diff --git a/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.flags b/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.flags new file mode 100644 index 0000000000..e8fb65d50c --- /dev/null +++ b/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.flags @@ -0,0 +1 @@ +-Xfatal-warnings \ No newline at end of file diff --git a/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.scala b/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.scala new file mode 100644 index 0000000000..dee2f1de3b --- /dev/null +++ b/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.scala @@ -0,0 +1,56 @@ +object Test1 { + val `macro` = ??? +} + +object Test2 { + var `macro` = ??? +} + +object Test3 { + type `macro` = Int +} + +package test4 { + class `macro` +} + +object Test5 { + class `macro` +} + +package test6 { + object `macro` +} + +object Test7 { + object `macro` +} + +package test8 { + trait `macro` +} + +object Test9 { + trait `macro` +} + +package `macro` { + package `macro`.bar { + } +} + +package foo { + package `macro`.foo { + } +} + +object Test12 { + val Some(`macro`) = Some(42) + `macro` match { + case `macro` => println(`macro`) + } +} + +object Test13 { + def `macro` = 2 +} \ No newline at end of file diff --git a/test/disabled/neg/macro-invalidshape-d.check b/test/disabled/neg/macro-invalidshape-d.check new file mode 100644 index 0000000000..031aa653ab --- /dev/null +++ b/test/disabled/neg/macro-invalidshape-d.check @@ -0,0 +1,4 @@ +Macros_Test_2.scala:2: error: illegal start of statement + def foo(x: Any) = {2; macro Impls.foo} + ^ +one error found diff --git a/test/disabled/neg/macro-invalidshape-d.flags b/test/disabled/neg/macro-invalidshape-d.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/disabled/neg/macro-invalidshape-d.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-invalidshape-d/Impls_1.scala b/test/disabled/neg/macro-invalidshape-d/Impls_1.scala new file mode 100644 index 0000000000..7b1620d117 --- /dev/null +++ b/test/disabled/neg/macro-invalidshape-d/Impls_1.scala @@ -0,0 +1,5 @@ +import scala.reflect.makro.{Context => Ctx} + +object Impls { + def foo(c: Ctx)(x: c.Expr[Any]) = ??? +} diff --git a/test/disabled/neg/macro-invalidshape-d/Macros_Test_2.scala b/test/disabled/neg/macro-invalidshape-d/Macros_Test_2.scala new file mode 100644 index 0000000000..bacd9a6e7c --- /dev/null +++ b/test/disabled/neg/macro-invalidshape-d/Macros_Test_2.scala @@ -0,0 +1,8 @@ +object Macros { + def foo(x: Any) = {2; macro Impls.foo} +} + +object Test extends App { + import Macros._ + foo(42) +} \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-bind.check b/test/disabled/neg/macro-keyword-bind.check new file mode 100644 index 0000000000..1f74cfe5cd --- /dev/null +++ b/test/disabled/neg/macro-keyword-bind.check @@ -0,0 +1,7 @@ +macro-keyword-bind.scala:2: error: illegal start of simple pattern + val Some(macro) = Some(42) + ^ +macro-keyword-bind.scala:6: error: ')' expected but '}' found. +} +^ +two errors found diff --git a/test/disabled/neg/macro-keyword-bind.flags b/test/disabled/neg/macro-keyword-bind.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-bind.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-bind.scala b/test/disabled/neg/macro-keyword-bind.scala new file mode 100644 index 0000000000..a3b1553348 --- /dev/null +++ b/test/disabled/neg/macro-keyword-bind.scala @@ -0,0 +1,6 @@ +object Test12 { + val Some(macro) = Some(42) + macro match { + case macro => println(macro) + } +} \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-class1.check b/test/disabled/neg/macro-keyword-class1.check new file mode 100644 index 0000000000..d8983180ef --- /dev/null +++ b/test/disabled/neg/macro-keyword-class1.check @@ -0,0 +1,4 @@ +macro-keyword-class1.scala:3: error: identifier expected but 'macro' found. +class macro + ^ +one error found diff --git a/test/disabled/neg/macro-keyword-class1.flags b/test/disabled/neg/macro-keyword-class1.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-class1.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-class1.scala b/test/disabled/neg/macro-keyword-class1.scala new file mode 100644 index 0000000000..8635d1f4f6 --- /dev/null +++ b/test/disabled/neg/macro-keyword-class1.scala @@ -0,0 +1,3 @@ +package test4 + +class macro diff --git a/test/disabled/neg/macro-keyword-class2.check b/test/disabled/neg/macro-keyword-class2.check new file mode 100644 index 0000000000..0e4d11bcc4 --- /dev/null +++ b/test/disabled/neg/macro-keyword-class2.check @@ -0,0 +1,4 @@ +macro-keyword-class2.scala:2: error: identifier expected but 'macro' found. + class macro + ^ +one error found diff --git a/test/disabled/neg/macro-keyword-class2.flags b/test/disabled/neg/macro-keyword-class2.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-class2.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-class2.scala b/test/disabled/neg/macro-keyword-class2.scala new file mode 100644 index 0000000000..af24a489d0 --- /dev/null +++ b/test/disabled/neg/macro-keyword-class2.scala @@ -0,0 +1,3 @@ +object Test5 { + class macro +} diff --git a/test/disabled/neg/macro-keyword-object1.check b/test/disabled/neg/macro-keyword-object1.check new file mode 100644 index 0000000000..cfbd06ffd6 --- /dev/null +++ b/test/disabled/neg/macro-keyword-object1.check @@ -0,0 +1,4 @@ +macro-keyword-object1.scala:3: error: identifier expected but 'macro' found. +object macro + ^ +one error found diff --git a/test/disabled/neg/macro-keyword-object1.flags b/test/disabled/neg/macro-keyword-object1.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-object1.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-object1.scala b/test/disabled/neg/macro-keyword-object1.scala new file mode 100644 index 0000000000..66eb494e6b --- /dev/null +++ b/test/disabled/neg/macro-keyword-object1.scala @@ -0,0 +1,3 @@ +package test6 + +object macro diff --git a/test/disabled/neg/macro-keyword-object2.check b/test/disabled/neg/macro-keyword-object2.check new file mode 100644 index 0000000000..ede31f13e5 --- /dev/null +++ b/test/disabled/neg/macro-keyword-object2.check @@ -0,0 +1,4 @@ +macro-keyword-object2.scala:2: error: identifier expected but 'macro' found. + object macro + ^ +one error found diff --git a/test/disabled/neg/macro-keyword-object2.flags b/test/disabled/neg/macro-keyword-object2.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-object2.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-object2.scala b/test/disabled/neg/macro-keyword-object2.scala new file mode 100644 index 0000000000..6f5b9ceacd --- /dev/null +++ b/test/disabled/neg/macro-keyword-object2.scala @@ -0,0 +1,3 @@ +object Test7 { + object macro +} diff --git a/test/disabled/neg/macro-keyword-package1.check b/test/disabled/neg/macro-keyword-package1.check new file mode 100644 index 0000000000..22c1e11ded --- /dev/null +++ b/test/disabled/neg/macro-keyword-package1.check @@ -0,0 +1,4 @@ +macro-keyword-package1.scala:1: error: identifier expected but 'macro' found. +package macro + ^ +one error found diff --git a/test/disabled/neg/macro-keyword-package1.flags b/test/disabled/neg/macro-keyword-package1.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-package1.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-package1.scala b/test/disabled/neg/macro-keyword-package1.scala new file mode 100644 index 0000000000..52d3fbabf6 --- /dev/null +++ b/test/disabled/neg/macro-keyword-package1.scala @@ -0,0 +1,3 @@ +package macro + +package macro.bar \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-package2.check b/test/disabled/neg/macro-keyword-package2.check new file mode 100644 index 0000000000..0cb542a85d --- /dev/null +++ b/test/disabled/neg/macro-keyword-package2.check @@ -0,0 +1,4 @@ +macro-keyword-package2.scala:3: error: identifier expected but 'macro' found. +package macro.foo + ^ +one error found diff --git a/test/disabled/neg/macro-keyword-package2.flags b/test/disabled/neg/macro-keyword-package2.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-package2.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-package2.scala b/test/disabled/neg/macro-keyword-package2.scala new file mode 100644 index 0000000000..a68ebd935f --- /dev/null +++ b/test/disabled/neg/macro-keyword-package2.scala @@ -0,0 +1,3 @@ +package foo + +package macro.foo diff --git a/test/disabled/neg/macro-keyword-trait1.check b/test/disabled/neg/macro-keyword-trait1.check new file mode 100644 index 0000000000..9586a62e08 --- /dev/null +++ b/test/disabled/neg/macro-keyword-trait1.check @@ -0,0 +1,4 @@ +macro-keyword-trait1.scala:3: error: identifier expected but 'macro' found. +trait macro + ^ +one error found diff --git a/test/disabled/neg/macro-keyword-trait1.flags b/test/disabled/neg/macro-keyword-trait1.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-trait1.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-trait1.scala b/test/disabled/neg/macro-keyword-trait1.scala new file mode 100644 index 0000000000..e32d4c1385 --- /dev/null +++ b/test/disabled/neg/macro-keyword-trait1.scala @@ -0,0 +1,3 @@ +package test8 + +trait macro diff --git a/test/disabled/neg/macro-keyword-trait2.check b/test/disabled/neg/macro-keyword-trait2.check new file mode 100644 index 0000000000..40aa764378 --- /dev/null +++ b/test/disabled/neg/macro-keyword-trait2.check @@ -0,0 +1,4 @@ +macro-keyword-trait2.scala:2: error: identifier expected but 'macro' found. + trait macro + ^ +one error found diff --git a/test/disabled/neg/macro-keyword-trait2.flags b/test/disabled/neg/macro-keyword-trait2.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-trait2.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-trait2.scala b/test/disabled/neg/macro-keyword-trait2.scala new file mode 100644 index 0000000000..243a54abe6 --- /dev/null +++ b/test/disabled/neg/macro-keyword-trait2.scala @@ -0,0 +1,3 @@ +object Test9 { + trait macro +} diff --git a/test/disabled/neg/macro-keyword-type.check b/test/disabled/neg/macro-keyword-type.check new file mode 100644 index 0000000000..4a7481114c --- /dev/null +++ b/test/disabled/neg/macro-keyword-type.check @@ -0,0 +1,4 @@ +macro-keyword-type.scala:2: error: identifier expected but 'macro' found. + type macro = Int + ^ +one error found diff --git a/test/disabled/neg/macro-keyword-type.flags b/test/disabled/neg/macro-keyword-type.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-type.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-type.scala b/test/disabled/neg/macro-keyword-type.scala new file mode 100644 index 0000000000..30e523bcaf --- /dev/null +++ b/test/disabled/neg/macro-keyword-type.scala @@ -0,0 +1,3 @@ +object Test3 { + type macro = Int +} \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-val.check b/test/disabled/neg/macro-keyword-val.check new file mode 100644 index 0000000000..0dc4c030a9 --- /dev/null +++ b/test/disabled/neg/macro-keyword-val.check @@ -0,0 +1,7 @@ +macro-keyword-val.scala:2: error: illegal start of simple pattern + val macro = ??? + ^ +macro-keyword-val.scala:3: error: '=' expected but '}' found. +} +^ +two errors found diff --git a/test/disabled/neg/macro-keyword-val.flags b/test/disabled/neg/macro-keyword-val.flags new file mode 100644 index 0000000000..7fea2ff901 --- /dev/null +++ b/test/disabled/neg/macro-keyword-val.flags @@ -0,0 +1 @@ +-Xmacros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-val.scala b/test/disabled/neg/macro-keyword-val.scala new file mode 100644 index 0000000000..96f57acb30 --- /dev/null +++ b/test/disabled/neg/macro-keyword-val.scala @@ -0,0 +1,3 @@ +object Test1 { + val macro = ??? +} \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-var.check b/test/disabled/neg/macro-keyword-var.check new file mode 100644 index 0000000000..96d02e0052 --- /dev/null +++ b/test/disabled/neg/macro-keyword-var.check @@ -0,0 +1,7 @@ +macro-keyword-var.scala:2: error: illegal start of simple pattern + var macro = ??? + ^ +macro-keyword-var.scala:3: error: '=' expected but '}' found. +} +^ +two errors found diff --git a/test/disabled/neg/macro-keyword-var.flags b/test/disabled/neg/macro-keyword-var.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/disabled/neg/macro-keyword-var.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-var.scala b/test/disabled/neg/macro-keyword-var.scala new file mode 100644 index 0000000000..a79dda6dc2 --- /dev/null +++ b/test/disabled/neg/macro-keyword-var.scala @@ -0,0 +1,3 @@ +object Test2 { + var macro = ??? +} \ No newline at end of file diff --git a/test/disabled/neg/macro-without-xmacros-a.check b/test/disabled/neg/macro-without-xmacros-a.check new file mode 100644 index 0000000000..a3ca081f04 --- /dev/null +++ b/test/disabled/neg/macro-without-xmacros-a.check @@ -0,0 +1,10 @@ +Macros_2.scala:5: error: not found: value macro + def foo(x: Int): Int = macro foo_impl + ^ +Macros_2.scala:7: error: not found: value macro + def bar(x: Int): Int = macro bar_impl + ^ +Macros_2.scala:11: error: not found: value macro + def quux(x: Int): Int = macro quux_impl + ^ +three errors found diff --git a/test/disabled/neg/macro-without-xmacros-a/Impls_1.scala b/test/disabled/neg/macro-without-xmacros-a/Impls_1.scala new file mode 100644 index 0000000000..2493c81c95 --- /dev/null +++ b/test/disabled/neg/macro-without-xmacros-a/Impls_1.scala @@ -0,0 +1,18 @@ +import scala.reflect.makro.{Context => Ctx} + +object Impls { + def foo_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(1)))) + } + + def bar_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(2)))) + } + + def quux_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(3)))) + } +} diff --git a/test/disabled/neg/macro-without-xmacros-a/Macros_2.scala b/test/disabled/neg/macro-without-xmacros-a/Macros_2.scala new file mode 100644 index 0000000000..62f9dcf505 --- /dev/null +++ b/test/disabled/neg/macro-without-xmacros-a/Macros_2.scala @@ -0,0 +1,12 @@ +import Impls._ + +object Macros { + object Shmacros { + def foo(x: Int): Int = macro foo_impl + } + def bar(x: Int): Int = macro bar_impl +} + +class Macros { + def quux(x: Int): Int = macro quux_impl +} \ No newline at end of file diff --git a/test/disabled/neg/macro-without-xmacros-a/Test_3.scala b/test/disabled/neg/macro-without-xmacros-a/Test_3.scala new file mode 100644 index 0000000000..e9a10e20c9 --- /dev/null +++ b/test/disabled/neg/macro-without-xmacros-a/Test_3.scala @@ -0,0 +1,4 @@ +object Test extends App { + import Macros.Shmacros._ + println(foo(2) + Macros.bar(2) * new Macros().quux(4)) +} \ No newline at end of file diff --git a/test/disabled/neg/macro-without-xmacros-b.check b/test/disabled/neg/macro-without-xmacros-b.check new file mode 100644 index 0000000000..dce4a084c9 --- /dev/null +++ b/test/disabled/neg/macro-without-xmacros-b.check @@ -0,0 +1,10 @@ +Macros_2.scala:3: error: ';' expected but '.' found. + def foo(x: Int): Int = macro Impls.foo_impl + ^ +Macros_2.scala:5: error: ';' expected but '.' found. + def bar(x: Int): Int = macro Impls.bar_impl + ^ +Macros_2.scala:9: error: ';' expected but '.' found. + def quux(x: Int): Int = macro Impls.quux_impl + ^ +three errors found diff --git a/test/disabled/neg/macro-without-xmacros-b/Impls_1.scala b/test/disabled/neg/macro-without-xmacros-b/Impls_1.scala new file mode 100644 index 0000000000..2493c81c95 --- /dev/null +++ b/test/disabled/neg/macro-without-xmacros-b/Impls_1.scala @@ -0,0 +1,18 @@ +import scala.reflect.makro.{Context => Ctx} + +object Impls { + def foo_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(1)))) + } + + def bar_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(2)))) + } + + def quux_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(3)))) + } +} diff --git a/test/disabled/neg/macro-without-xmacros-b/Macros_2.scala b/test/disabled/neg/macro-without-xmacros-b/Macros_2.scala new file mode 100644 index 0000000000..de7080c7e8 --- /dev/null +++ b/test/disabled/neg/macro-without-xmacros-b/Macros_2.scala @@ -0,0 +1,10 @@ +object Macros { + object Shmacros { + def foo(x: Int): Int = macro Impls.foo_impl + } + def bar(x: Int): Int = macro Impls.bar_impl +} + +class Macros { + def quux(x: Int): Int = macro Impls.quux_impl +} \ No newline at end of file diff --git a/test/disabled/neg/macro-without-xmacros-b/Test_3.scala b/test/disabled/neg/macro-without-xmacros-b/Test_3.scala new file mode 100644 index 0000000000..e9a10e20c9 --- /dev/null +++ b/test/disabled/neg/macro-without-xmacros-b/Test_3.scala @@ -0,0 +1,4 @@ +object Test extends App { + import Macros.Shmacros._ + println(foo(2) + Macros.bar(2) * new Macros().quux(4)) +} \ No newline at end of file diff --git a/test/files/neg/macro-deprecate-dont-touch-backquotedidents.check b/test/files/neg/macro-deprecate-dont-touch-backquotedidents.check deleted file mode 100644 index 25df9a6a4a..0000000000 --- a/test/files/neg/macro-deprecate-dont-touch-backquotedidents.check +++ /dev/null @@ -1,10 +0,0 @@ -macro-deprecate-dont-touch-backquotedidents.scala:37: error: in future versions of Scala "macro" will be a keyword. consider using a different name. -package `macro` { - ^ -macro-deprecate-dont-touch-backquotedidents.scala:38: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - package `macro`.bar { - ^ -macro-deprecate-dont-touch-backquotedidents.scala:43: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - package `macro`.foo { - ^ -three errors found diff --git a/test/files/neg/macro-deprecate-dont-touch-backquotedidents.flags b/test/files/neg/macro-deprecate-dont-touch-backquotedidents.flags deleted file mode 100644 index e8fb65d50c..0000000000 --- a/test/files/neg/macro-deprecate-dont-touch-backquotedidents.flags +++ /dev/null @@ -1 +0,0 @@ --Xfatal-warnings \ No newline at end of file diff --git a/test/files/neg/macro-deprecate-dont-touch-backquotedidents.scala b/test/files/neg/macro-deprecate-dont-touch-backquotedidents.scala deleted file mode 100644 index dee2f1de3b..0000000000 --- a/test/files/neg/macro-deprecate-dont-touch-backquotedidents.scala +++ /dev/null @@ -1,56 +0,0 @@ -object Test1 { - val `macro` = ??? -} - -object Test2 { - var `macro` = ??? -} - -object Test3 { - type `macro` = Int -} - -package test4 { - class `macro` -} - -object Test5 { - class `macro` -} - -package test6 { - object `macro` -} - -object Test7 { - object `macro` -} - -package test8 { - trait `macro` -} - -object Test9 { - trait `macro` -} - -package `macro` { - package `macro`.bar { - } -} - -package foo { - package `macro`.foo { - } -} - -object Test12 { - val Some(`macro`) = Some(42) - `macro` match { - case `macro` => println(`macro`) - } -} - -object Test13 { - def `macro` = 2 -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape-d.check b/test/files/neg/macro-invalidshape-d.check deleted file mode 100644 index 031aa653ab..0000000000 --- a/test/files/neg/macro-invalidshape-d.check +++ /dev/null @@ -1,4 +0,0 @@ -Macros_Test_2.scala:2: error: illegal start of statement - def foo(x: Any) = {2; macro Impls.foo} - ^ -one error found diff --git a/test/files/neg/macro-invalidshape-d.flags b/test/files/neg/macro-invalidshape-d.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidshape-d.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape-d/Impls_1.scala b/test/files/neg/macro-invalidshape-d/Impls_1.scala deleted file mode 100644 index 7b1620d117..0000000000 --- a/test/files/neg/macro-invalidshape-d/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.makro.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(x: c.Expr[Any]) = ??? -} diff --git a/test/files/neg/macro-invalidshape-d/Macros_Test_2.scala b/test/files/neg/macro-invalidshape-d/Macros_Test_2.scala deleted file mode 100644 index bacd9a6e7c..0000000000 --- a/test/files/neg/macro-invalidshape-d/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo(x: Any) = {2; macro Impls.foo} -} - -object Test extends App { - import Macros._ - foo(42) -} \ No newline at end of file diff --git a/test/files/neg/macro-keyword-bind.check b/test/files/neg/macro-keyword-bind.check deleted file mode 100644 index 1f74cfe5cd..0000000000 --- a/test/files/neg/macro-keyword-bind.check +++ /dev/null @@ -1,7 +0,0 @@ -macro-keyword-bind.scala:2: error: illegal start of simple pattern - val Some(macro) = Some(42) - ^ -macro-keyword-bind.scala:6: error: ')' expected but '}' found. -} -^ -two errors found diff --git a/test/files/neg/macro-keyword-bind.flags b/test/files/neg/macro-keyword-bind.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-bind.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-bind.scala b/test/files/neg/macro-keyword-bind.scala deleted file mode 100644 index a3b1553348..0000000000 --- a/test/files/neg/macro-keyword-bind.scala +++ /dev/null @@ -1,6 +0,0 @@ -object Test12 { - val Some(macro) = Some(42) - macro match { - case macro => println(macro) - } -} \ No newline at end of file diff --git a/test/files/neg/macro-keyword-class1.check b/test/files/neg/macro-keyword-class1.check deleted file mode 100644 index d8983180ef..0000000000 --- a/test/files/neg/macro-keyword-class1.check +++ /dev/null @@ -1,4 +0,0 @@ -macro-keyword-class1.scala:3: error: identifier expected but 'macro' found. -class macro - ^ -one error found diff --git a/test/files/neg/macro-keyword-class1.flags b/test/files/neg/macro-keyword-class1.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-class1.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-class1.scala b/test/files/neg/macro-keyword-class1.scala deleted file mode 100644 index 8635d1f4f6..0000000000 --- a/test/files/neg/macro-keyword-class1.scala +++ /dev/null @@ -1,3 +0,0 @@ -package test4 - -class macro diff --git a/test/files/neg/macro-keyword-class2.check b/test/files/neg/macro-keyword-class2.check deleted file mode 100644 index 0e4d11bcc4..0000000000 --- a/test/files/neg/macro-keyword-class2.check +++ /dev/null @@ -1,4 +0,0 @@ -macro-keyword-class2.scala:2: error: identifier expected but 'macro' found. - class macro - ^ -one error found diff --git a/test/files/neg/macro-keyword-class2.flags b/test/files/neg/macro-keyword-class2.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-class2.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-class2.scala b/test/files/neg/macro-keyword-class2.scala deleted file mode 100644 index af24a489d0..0000000000 --- a/test/files/neg/macro-keyword-class2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test5 { - class macro -} diff --git a/test/files/neg/macro-keyword-object1.check b/test/files/neg/macro-keyword-object1.check deleted file mode 100644 index cfbd06ffd6..0000000000 --- a/test/files/neg/macro-keyword-object1.check +++ /dev/null @@ -1,4 +0,0 @@ -macro-keyword-object1.scala:3: error: identifier expected but 'macro' found. -object macro - ^ -one error found diff --git a/test/files/neg/macro-keyword-object1.flags b/test/files/neg/macro-keyword-object1.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-object1.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-object1.scala b/test/files/neg/macro-keyword-object1.scala deleted file mode 100644 index 66eb494e6b..0000000000 --- a/test/files/neg/macro-keyword-object1.scala +++ /dev/null @@ -1,3 +0,0 @@ -package test6 - -object macro diff --git a/test/files/neg/macro-keyword-object2.check b/test/files/neg/macro-keyword-object2.check deleted file mode 100644 index ede31f13e5..0000000000 --- a/test/files/neg/macro-keyword-object2.check +++ /dev/null @@ -1,4 +0,0 @@ -macro-keyword-object2.scala:2: error: identifier expected but 'macro' found. - object macro - ^ -one error found diff --git a/test/files/neg/macro-keyword-object2.flags b/test/files/neg/macro-keyword-object2.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-object2.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-object2.scala b/test/files/neg/macro-keyword-object2.scala deleted file mode 100644 index 6f5b9ceacd..0000000000 --- a/test/files/neg/macro-keyword-object2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test7 { - object macro -} diff --git a/test/files/neg/macro-keyword-package1.check b/test/files/neg/macro-keyword-package1.check deleted file mode 100644 index 22c1e11ded..0000000000 --- a/test/files/neg/macro-keyword-package1.check +++ /dev/null @@ -1,4 +0,0 @@ -macro-keyword-package1.scala:1: error: identifier expected but 'macro' found. -package macro - ^ -one error found diff --git a/test/files/neg/macro-keyword-package1.flags b/test/files/neg/macro-keyword-package1.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-package1.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-package1.scala b/test/files/neg/macro-keyword-package1.scala deleted file mode 100644 index 52d3fbabf6..0000000000 --- a/test/files/neg/macro-keyword-package1.scala +++ /dev/null @@ -1,3 +0,0 @@ -package macro - -package macro.bar \ No newline at end of file diff --git a/test/files/neg/macro-keyword-package2.check b/test/files/neg/macro-keyword-package2.check deleted file mode 100644 index 0cb542a85d..0000000000 --- a/test/files/neg/macro-keyword-package2.check +++ /dev/null @@ -1,4 +0,0 @@ -macro-keyword-package2.scala:3: error: identifier expected but 'macro' found. -package macro.foo - ^ -one error found diff --git a/test/files/neg/macro-keyword-package2.flags b/test/files/neg/macro-keyword-package2.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-package2.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-package2.scala b/test/files/neg/macro-keyword-package2.scala deleted file mode 100644 index a68ebd935f..0000000000 --- a/test/files/neg/macro-keyword-package2.scala +++ /dev/null @@ -1,3 +0,0 @@ -package foo - -package macro.foo diff --git a/test/files/neg/macro-keyword-trait1.check b/test/files/neg/macro-keyword-trait1.check deleted file mode 100644 index 9586a62e08..0000000000 --- a/test/files/neg/macro-keyword-trait1.check +++ /dev/null @@ -1,4 +0,0 @@ -macro-keyword-trait1.scala:3: error: identifier expected but 'macro' found. -trait macro - ^ -one error found diff --git a/test/files/neg/macro-keyword-trait1.flags b/test/files/neg/macro-keyword-trait1.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-trait1.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-trait1.scala b/test/files/neg/macro-keyword-trait1.scala deleted file mode 100644 index e32d4c1385..0000000000 --- a/test/files/neg/macro-keyword-trait1.scala +++ /dev/null @@ -1,3 +0,0 @@ -package test8 - -trait macro diff --git a/test/files/neg/macro-keyword-trait2.check b/test/files/neg/macro-keyword-trait2.check deleted file mode 100644 index 40aa764378..0000000000 --- a/test/files/neg/macro-keyword-trait2.check +++ /dev/null @@ -1,4 +0,0 @@ -macro-keyword-trait2.scala:2: error: identifier expected but 'macro' found. - trait macro - ^ -one error found diff --git a/test/files/neg/macro-keyword-trait2.flags b/test/files/neg/macro-keyword-trait2.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-trait2.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-trait2.scala b/test/files/neg/macro-keyword-trait2.scala deleted file mode 100644 index 243a54abe6..0000000000 --- a/test/files/neg/macro-keyword-trait2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test9 { - trait macro -} diff --git a/test/files/neg/macro-keyword-type.check b/test/files/neg/macro-keyword-type.check deleted file mode 100644 index 4a7481114c..0000000000 --- a/test/files/neg/macro-keyword-type.check +++ /dev/null @@ -1,4 +0,0 @@ -macro-keyword-type.scala:2: error: identifier expected but 'macro' found. - type macro = Int - ^ -one error found diff --git a/test/files/neg/macro-keyword-type.flags b/test/files/neg/macro-keyword-type.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-type.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-type.scala b/test/files/neg/macro-keyword-type.scala deleted file mode 100644 index 30e523bcaf..0000000000 --- a/test/files/neg/macro-keyword-type.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test3 { - type macro = Int -} \ No newline at end of file diff --git a/test/files/neg/macro-keyword-val.check b/test/files/neg/macro-keyword-val.check deleted file mode 100644 index 0dc4c030a9..0000000000 --- a/test/files/neg/macro-keyword-val.check +++ /dev/null @@ -1,7 +0,0 @@ -macro-keyword-val.scala:2: error: illegal start of simple pattern - val macro = ??? - ^ -macro-keyword-val.scala:3: error: '=' expected but '}' found. -} -^ -two errors found diff --git a/test/files/neg/macro-keyword-val.flags b/test/files/neg/macro-keyword-val.flags deleted file mode 100644 index 7fea2ff901..0000000000 --- a/test/files/neg/macro-keyword-val.flags +++ /dev/null @@ -1 +0,0 @@ --Xmacros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-val.scala b/test/files/neg/macro-keyword-val.scala deleted file mode 100644 index 96f57acb30..0000000000 --- a/test/files/neg/macro-keyword-val.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test1 { - val macro = ??? -} \ No newline at end of file diff --git a/test/files/neg/macro-keyword-var.check b/test/files/neg/macro-keyword-var.check deleted file mode 100644 index 96d02e0052..0000000000 --- a/test/files/neg/macro-keyword-var.check +++ /dev/null @@ -1,7 +0,0 @@ -macro-keyword-var.scala:2: error: illegal start of simple pattern - var macro = ??? - ^ -macro-keyword-var.scala:3: error: '=' expected but '}' found. -} -^ -two errors found diff --git a/test/files/neg/macro-keyword-var.flags b/test/files/neg/macro-keyword-var.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-keyword-var.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-keyword-var.scala b/test/files/neg/macro-keyword-var.scala deleted file mode 100644 index a79dda6dc2..0000000000 --- a/test/files/neg/macro-keyword-var.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test2 { - var macro = ??? -} \ No newline at end of file diff --git a/test/files/neg/macro-without-xmacros-a.check b/test/files/neg/macro-without-xmacros-a.check deleted file mode 100644 index a3ca081f04..0000000000 --- a/test/files/neg/macro-without-xmacros-a.check +++ /dev/null @@ -1,10 +0,0 @@ -Macros_2.scala:5: error: not found: value macro - def foo(x: Int): Int = macro foo_impl - ^ -Macros_2.scala:7: error: not found: value macro - def bar(x: Int): Int = macro bar_impl - ^ -Macros_2.scala:11: error: not found: value macro - def quux(x: Int): Int = macro quux_impl - ^ -three errors found diff --git a/test/files/neg/macro-without-xmacros-a/Impls_1.scala b/test/files/neg/macro-without-xmacros-a/Impls_1.scala deleted file mode 100644 index 2493c81c95..0000000000 --- a/test/files/neg/macro-without-xmacros-a/Impls_1.scala +++ /dev/null @@ -1,18 +0,0 @@ -import scala.reflect.makro.{Context => Ctx} - -object Impls { - def foo_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(1)))) - } - - def bar_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(2)))) - } - - def quux_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(3)))) - } -} diff --git a/test/files/neg/macro-without-xmacros-a/Macros_2.scala b/test/files/neg/macro-without-xmacros-a/Macros_2.scala deleted file mode 100644 index 62f9dcf505..0000000000 --- a/test/files/neg/macro-without-xmacros-a/Macros_2.scala +++ /dev/null @@ -1,12 +0,0 @@ -import Impls._ - -object Macros { - object Shmacros { - def foo(x: Int): Int = macro foo_impl - } - def bar(x: Int): Int = macro bar_impl -} - -class Macros { - def quux(x: Int): Int = macro quux_impl -} \ No newline at end of file diff --git a/test/files/neg/macro-without-xmacros-a/Test_3.scala b/test/files/neg/macro-without-xmacros-a/Test_3.scala deleted file mode 100644 index e9a10e20c9..0000000000 --- a/test/files/neg/macro-without-xmacros-a/Test_3.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - import Macros.Shmacros._ - println(foo(2) + Macros.bar(2) * new Macros().quux(4)) -} \ No newline at end of file diff --git a/test/files/neg/macro-without-xmacros-b.check b/test/files/neg/macro-without-xmacros-b.check deleted file mode 100644 index dce4a084c9..0000000000 --- a/test/files/neg/macro-without-xmacros-b.check +++ /dev/null @@ -1,10 +0,0 @@ -Macros_2.scala:3: error: ';' expected but '.' found. - def foo(x: Int): Int = macro Impls.foo_impl - ^ -Macros_2.scala:5: error: ';' expected but '.' found. - def bar(x: Int): Int = macro Impls.bar_impl - ^ -Macros_2.scala:9: error: ';' expected but '.' found. - def quux(x: Int): Int = macro Impls.quux_impl - ^ -three errors found diff --git a/test/files/neg/macro-without-xmacros-b/Impls_1.scala b/test/files/neg/macro-without-xmacros-b/Impls_1.scala deleted file mode 100644 index 2493c81c95..0000000000 --- a/test/files/neg/macro-without-xmacros-b/Impls_1.scala +++ /dev/null @@ -1,18 +0,0 @@ -import scala.reflect.makro.{Context => Ctx} - -object Impls { - def foo_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(1)))) - } - - def bar_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(2)))) - } - - def quux_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(3)))) - } -} diff --git a/test/files/neg/macro-without-xmacros-b/Macros_2.scala b/test/files/neg/macro-without-xmacros-b/Macros_2.scala deleted file mode 100644 index de7080c7e8..0000000000 --- a/test/files/neg/macro-without-xmacros-b/Macros_2.scala +++ /dev/null @@ -1,10 +0,0 @@ -object Macros { - object Shmacros { - def foo(x: Int): Int = macro Impls.foo_impl - } - def bar(x: Int): Int = macro Impls.bar_impl -} - -class Macros { - def quux(x: Int): Int = macro Impls.quux_impl -} \ No newline at end of file diff --git a/test/files/neg/macro-without-xmacros-b/Test_3.scala b/test/files/neg/macro-without-xmacros-b/Test_3.scala deleted file mode 100644 index e9a10e20c9..0000000000 --- a/test/files/neg/macro-without-xmacros-b/Test_3.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - import Macros.Shmacros._ - println(foo(2) + Macros.bar(2) * new Macros().quux(4)) -} \ No newline at end of file -- cgit v1.2.3 From 0ba3d542cc236ab2dbed3dc551920ede94787a0c Mon Sep 17 00:00:00 2001 From: Eugene Burmako Date: Sat, 14 Apr 2012 10:33:10 +0200 Subject: restores some disabled macro tests, makes checkFeature synchronous when used for macros --- .../scala/tools/nsc/typechecker/Implicits.scala | 2 +- .../scala/tools/nsc/typechecker/Macros.scala | 13 +++++ ...cro-deprecate-dont-touch-backquotedidents.check | 10 ---- ...cro-deprecate-dont-touch-backquotedidents.flags | 1 - ...cro-deprecate-dont-touch-backquotedidents.scala | 56 ---------------------- test/disabled/neg/macro-deprecate-idents.check | 46 ------------------ test/disabled/neg/macro-deprecate-idents.flags | 1 - test/disabled/neg/macro-deprecate-idents.scala | 56 ---------------------- test/disabled/neg/macro-invalidshape-d.check | 4 -- test/disabled/neg/macro-invalidshape-d.flags | 1 - .../neg/macro-invalidshape-d/Impls_1.scala | 5 -- .../neg/macro-invalidshape-d/Macros_Test_2.scala | 8 ---- test/disabled/neg/macro-keyword-bind.flags | 2 +- test/disabled/neg/macro-keyword-class1.flags | 2 +- test/disabled/neg/macro-keyword-class2.flags | 2 +- test/disabled/neg/macro-keyword-object1.flags | 2 +- test/disabled/neg/macro-keyword-object2.flags | 2 +- test/disabled/neg/macro-keyword-package1.flags | 2 +- test/disabled/neg/macro-keyword-package2.flags | 2 +- test/disabled/neg/macro-keyword-trait1.flags | 2 +- test/disabled/neg/macro-keyword-trait2.flags | 2 +- test/disabled/neg/macro-keyword-type.flags | 2 +- test/disabled/neg/macro-keyword-val.flags | 2 +- test/disabled/neg/macro-without-xmacros-a.check | 10 ---- .../neg/macro-without-xmacros-a/Impls_1.scala | 18 ------- .../neg/macro-without-xmacros-a/Macros_2.scala | 12 ----- .../neg/macro-without-xmacros-a/Test_3.scala | 4 -- test/disabled/neg/macro-without-xmacros-b.check | 10 ---- .../neg/macro-without-xmacros-b/Impls_1.scala | 18 ------- .../neg/macro-without-xmacros-b/Macros_2.scala | 10 ---- .../neg/macro-without-xmacros-b/Test_3.scala | 4 -- .../run/macro-reflective-mamd-normal-mi.check | 0 .../run/macro-reflective-mamd-normal-mi.flags | 0 .../macro-reflective-mamd-normal-mi/Impls_1.scala | 9 ---- .../Macros_Test_2.scala | 16 ------- test/files/neg/macro-deprecate-idents.check | 52 ++++++++++++++++++++ test/files/neg/macro-deprecate-idents.flags | 1 + test/files/neg/macro-deprecate-idents.scala | 56 ++++++++++++++++++++++ test/files/neg/macro-invalidshape-d.check | 8 ++++ test/files/neg/macro-invalidshape-d.flags | 1 + test/files/neg/macro-invalidshape-d/Impls_1.scala | 5 ++ .../neg/macro-invalidshape-d/Macros_Test_2.scala | 8 ++++ test/files/neg/macro-without-xmacros-a.check | 17 +++++++ .../neg/macro-without-xmacros-a/Impls_1.scala | 18 +++++++ .../neg/macro-without-xmacros-a/Macros_2.scala | 12 +++++ .../files/neg/macro-without-xmacros-a/Test_3.scala | 4 ++ test/files/neg/macro-without-xmacros-b.check | 17 +++++++ .../neg/macro-without-xmacros-b/Impls_1.scala | 18 +++++++ .../neg/macro-without-xmacros-b/Macros_2.scala | 10 ++++ .../files/neg/macro-without-xmacros-b/Test_3.scala | 4 ++ ...cro-deprecate-dont-touch-backquotedidents.flags | 1 + ...cro-deprecate-dont-touch-backquotedidents.scala | 56 ++++++++++++++++++++++ .../run/macro-reflective-mamd-normal-mi.check | 1 + .../macro-reflective-mamd-normal-mi/Impls_1.scala | 9 ++++ .../Macros_Test_2.scala | 17 +++++++ test/files/run/t2886.check | 10 ++-- test/files/run/t2886.scala | 9 ++++ 57 files changed, 354 insertions(+), 316 deletions(-) delete mode 100644 test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.check delete mode 100644 test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.flags delete mode 100644 test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.scala delete mode 100644 test/disabled/neg/macro-deprecate-idents.check delete mode 100644 test/disabled/neg/macro-deprecate-idents.flags delete mode 100644 test/disabled/neg/macro-deprecate-idents.scala delete mode 100644 test/disabled/neg/macro-invalidshape-d.check delete mode 100644 test/disabled/neg/macro-invalidshape-d.flags delete mode 100644 test/disabled/neg/macro-invalidshape-d/Impls_1.scala delete mode 100644 test/disabled/neg/macro-invalidshape-d/Macros_Test_2.scala delete mode 100644 test/disabled/neg/macro-without-xmacros-a.check delete mode 100644 test/disabled/neg/macro-without-xmacros-a/Impls_1.scala delete mode 100644 test/disabled/neg/macro-without-xmacros-a/Macros_2.scala delete mode 100644 test/disabled/neg/macro-without-xmacros-a/Test_3.scala delete mode 100644 test/disabled/neg/macro-without-xmacros-b.check delete mode 100644 test/disabled/neg/macro-without-xmacros-b/Impls_1.scala delete mode 100644 test/disabled/neg/macro-without-xmacros-b/Macros_2.scala delete mode 100644 test/disabled/neg/macro-without-xmacros-b/Test_3.scala delete mode 100644 test/disabled/run/macro-reflective-mamd-normal-mi.check delete mode 100644 test/disabled/run/macro-reflective-mamd-normal-mi.flags delete mode 100644 test/disabled/run/macro-reflective-mamd-normal-mi/Impls_1.scala delete mode 100644 test/disabled/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala create mode 100644 test/files/neg/macro-deprecate-idents.check create mode 100644 test/files/neg/macro-deprecate-idents.flags create mode 100644 test/files/neg/macro-deprecate-idents.scala create mode 100644 test/files/neg/macro-invalidshape-d.check create mode 100644 test/files/neg/macro-invalidshape-d.flags create mode 100644 test/files/neg/macro-invalidshape-d/Impls_1.scala create mode 100644 test/files/neg/macro-invalidshape-d/Macros_Test_2.scala create mode 100644 test/files/neg/macro-without-xmacros-a.check create mode 100644 test/files/neg/macro-without-xmacros-a/Impls_1.scala create mode 100644 test/files/neg/macro-without-xmacros-a/Macros_2.scala create mode 100644 test/files/neg/macro-without-xmacros-a/Test_3.scala create mode 100644 test/files/neg/macro-without-xmacros-b.check create mode 100644 test/files/neg/macro-without-xmacros-b/Impls_1.scala create mode 100644 test/files/neg/macro-without-xmacros-b/Macros_2.scala create mode 100644 test/files/neg/macro-without-xmacros-b/Test_3.scala create mode 100644 test/files/pos/macro-deprecate-dont-touch-backquotedidents.flags create mode 100644 test/files/pos/macro-deprecate-dont-touch-backquotedidents.scala create mode 100644 test/files/run/macro-reflective-mamd-normal-mi.check create mode 100644 test/files/run/macro-reflective-mamd-normal-mi/Impls_1.scala create mode 100644 test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala create mode 100644 test/files/run/t2886.scala (limited to 'test/files/neg/macro-without-xmacros-b/Macros_2.scala') diff --git a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala index b4e0ad6edf..4fb9362ccc 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala @@ -166,7 +166,7 @@ trait Implicits { } def isCyclicOrErroneous = - try containsError(tpe) + try sym.hasFlag(LOCKED) || containsError(tpe) catch { case _: CyclicReference => true } var useCountArg: Int = 0 diff --git a/src/compiler/scala/tools/nsc/typechecker/Macros.scala b/src/compiler/scala/tools/nsc/typechecker/Macros.scala index 988b821d1a..b7e0eaef2b 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Macros.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Macros.scala @@ -184,8 +184,21 @@ trait Macros { self: Analyzer => def typedMacroBody(typer: Typer, ddef: DefDef): Tree = { import typer.context if (macroDebug) println("typechecking macro def %s at %s".format(ddef.symbol, ddef.pos)) + typer.checkFeature(ddef.pos, MacrosFeature) + // [Eugene to Martin] todo. copy/pasted this from checkFeature, because don't know a better way + // this is necessary to prevent macros from typechecking/expanding when they are not enabled + // `checkFeature` call alone is not enough, because it merely posts validation callback to unit.toCheck + def hasImport = inferImplicit(EmptyTree: Tree, MacrosFeature.tpe, true, false, typer.context) != SearchFailure + val nestedOwners = MacrosFeature.owner.ownerChain.takeWhile(_ != languageFeatureModule.moduleClass).reverse + val featureName = (nestedOwners map (_.name + ".")).mkString + MacrosFeature.name + def hasOption = settings.language.value contains featureName + if (!hasImport && !hasOption) { + ddef.symbol setFlag IS_ERROR + return EmptyTree + } + implicit class AugmentedString(s: String) { def abbreviateCoreAliases: String = { // hack! var result = s diff --git a/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.check b/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.check deleted file mode 100644 index 25df9a6a4a..0000000000 --- a/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.check +++ /dev/null @@ -1,10 +0,0 @@ -macro-deprecate-dont-touch-backquotedidents.scala:37: error: in future versions of Scala "macro" will be a keyword. consider using a different name. -package `macro` { - ^ -macro-deprecate-dont-touch-backquotedidents.scala:38: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - package `macro`.bar { - ^ -macro-deprecate-dont-touch-backquotedidents.scala:43: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - package `macro`.foo { - ^ -three errors found diff --git a/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.flags b/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.flags deleted file mode 100644 index e8fb65d50c..0000000000 --- a/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.flags +++ /dev/null @@ -1 +0,0 @@ --Xfatal-warnings \ No newline at end of file diff --git a/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.scala b/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.scala deleted file mode 100644 index dee2f1de3b..0000000000 --- a/test/disabled/neg/macro-deprecate-dont-touch-backquotedidents.scala +++ /dev/null @@ -1,56 +0,0 @@ -object Test1 { - val `macro` = ??? -} - -object Test2 { - var `macro` = ??? -} - -object Test3 { - type `macro` = Int -} - -package test4 { - class `macro` -} - -object Test5 { - class `macro` -} - -package test6 { - object `macro` -} - -object Test7 { - object `macro` -} - -package test8 { - trait `macro` -} - -object Test9 { - trait `macro` -} - -package `macro` { - package `macro`.bar { - } -} - -package foo { - package `macro`.foo { - } -} - -object Test12 { - val Some(`macro`) = Some(42) - `macro` match { - case `macro` => println(`macro`) - } -} - -object Test13 { - def `macro` = 2 -} \ No newline at end of file diff --git a/test/disabled/neg/macro-deprecate-idents.check b/test/disabled/neg/macro-deprecate-idents.check deleted file mode 100644 index bd685fc7b9..0000000000 --- a/test/disabled/neg/macro-deprecate-idents.check +++ /dev/null @@ -1,46 +0,0 @@ -macro-deprecate-idents.scala:2: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - val macro = ??? - ^ -macro-deprecate-idents.scala:6: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - var macro = ??? - ^ -macro-deprecate-idents.scala:10: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - type macro = Int - ^ -macro-deprecate-idents.scala:14: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - class macro - ^ -macro-deprecate-idents.scala:18: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - class macro - ^ -macro-deprecate-idents.scala:22: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - object macro - ^ -macro-deprecate-idents.scala:26: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - object macro - ^ -macro-deprecate-idents.scala:30: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - trait macro - ^ -macro-deprecate-idents.scala:34: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - trait macro - ^ -macro-deprecate-idents.scala:37: error: in future versions of Scala "macro" will be a keyword. consider using a different name. -package macro { - ^ -macro-deprecate-idents.scala:38: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - package macro.bar { - ^ -macro-deprecate-idents.scala:43: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - package macro.foo { - ^ -macro-deprecate-idents.scala:48: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - val Some(macro) = Some(42) - ^ -macro-deprecate-idents.scala:50: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - case macro => println(macro) - ^ -macro-deprecate-idents.scala:55: error: in future versions of Scala "macro" will be a keyword. consider using a different name. - def macro = 2 - ^ -15 errors found diff --git a/test/disabled/neg/macro-deprecate-idents.flags b/test/disabled/neg/macro-deprecate-idents.flags deleted file mode 100644 index e8fb65d50c..0000000000 --- a/test/disabled/neg/macro-deprecate-idents.flags +++ /dev/null @@ -1 +0,0 @@ --Xfatal-warnings \ No newline at end of file diff --git a/test/disabled/neg/macro-deprecate-idents.scala b/test/disabled/neg/macro-deprecate-idents.scala deleted file mode 100644 index 23c398e341..0000000000 --- a/test/disabled/neg/macro-deprecate-idents.scala +++ /dev/null @@ -1,56 +0,0 @@ -object Test1 { - val macro = ??? -} - -object Test2 { - var macro = ??? -} - -object Test3 { - type macro = Int -} - -package test4 { - class macro -} - -object Test5 { - class macro -} - -package test6 { - object macro -} - -object Test7 { - object macro -} - -package test8 { - trait macro -} - -object Test9 { - trait macro -} - -package macro { - package macro.bar { - } -} - -package foo { - package macro.foo { - } -} - -object Test12 { - val Some(macro) = Some(42) - macro match { - case macro => println(macro) - } -} - -object Test13 { - def macro = 2 -} \ No newline at end of file diff --git a/test/disabled/neg/macro-invalidshape-d.check b/test/disabled/neg/macro-invalidshape-d.check deleted file mode 100644 index 031aa653ab..0000000000 --- a/test/disabled/neg/macro-invalidshape-d.check +++ /dev/null @@ -1,4 +0,0 @@ -Macros_Test_2.scala:2: error: illegal start of statement - def foo(x: Any) = {2; macro Impls.foo} - ^ -one error found diff --git a/test/disabled/neg/macro-invalidshape-d.flags b/test/disabled/neg/macro-invalidshape-d.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/disabled/neg/macro-invalidshape-d.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-invalidshape-d/Impls_1.scala b/test/disabled/neg/macro-invalidshape-d/Impls_1.scala deleted file mode 100644 index 7b1620d117..0000000000 --- a/test/disabled/neg/macro-invalidshape-d/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.makro.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(x: c.Expr[Any]) = ??? -} diff --git a/test/disabled/neg/macro-invalidshape-d/Macros_Test_2.scala b/test/disabled/neg/macro-invalidshape-d/Macros_Test_2.scala deleted file mode 100644 index bacd9a6e7c..0000000000 --- a/test/disabled/neg/macro-invalidshape-d/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo(x: Any) = {2; macro Impls.foo} -} - -object Test extends App { - import Macros._ - foo(42) -} \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-bind.flags b/test/disabled/neg/macro-keyword-bind.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-bind.flags +++ b/test/disabled/neg/macro-keyword-bind.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-class1.flags b/test/disabled/neg/macro-keyword-class1.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-class1.flags +++ b/test/disabled/neg/macro-keyword-class1.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-class2.flags b/test/disabled/neg/macro-keyword-class2.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-class2.flags +++ b/test/disabled/neg/macro-keyword-class2.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-object1.flags b/test/disabled/neg/macro-keyword-object1.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-object1.flags +++ b/test/disabled/neg/macro-keyword-object1.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-object2.flags b/test/disabled/neg/macro-keyword-object2.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-object2.flags +++ b/test/disabled/neg/macro-keyword-object2.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-package1.flags b/test/disabled/neg/macro-keyword-package1.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-package1.flags +++ b/test/disabled/neg/macro-keyword-package1.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-package2.flags b/test/disabled/neg/macro-keyword-package2.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-package2.flags +++ b/test/disabled/neg/macro-keyword-package2.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-trait1.flags b/test/disabled/neg/macro-keyword-trait1.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-trait1.flags +++ b/test/disabled/neg/macro-keyword-trait1.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-trait2.flags b/test/disabled/neg/macro-keyword-trait2.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-trait2.flags +++ b/test/disabled/neg/macro-keyword-trait2.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-type.flags b/test/disabled/neg/macro-keyword-type.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-type.flags +++ b/test/disabled/neg/macro-keyword-type.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-keyword-val.flags b/test/disabled/neg/macro-keyword-val.flags index 7fea2ff901..cd66464f2f 100644 --- a/test/disabled/neg/macro-keyword-val.flags +++ b/test/disabled/neg/macro-keyword-val.flags @@ -1 +1 @@ --Xmacros \ No newline at end of file +-language:experimental.macros \ No newline at end of file diff --git a/test/disabled/neg/macro-without-xmacros-a.check b/test/disabled/neg/macro-without-xmacros-a.check deleted file mode 100644 index a3ca081f04..0000000000 --- a/test/disabled/neg/macro-without-xmacros-a.check +++ /dev/null @@ -1,10 +0,0 @@ -Macros_2.scala:5: error: not found: value macro - def foo(x: Int): Int = macro foo_impl - ^ -Macros_2.scala:7: error: not found: value macro - def bar(x: Int): Int = macro bar_impl - ^ -Macros_2.scala:11: error: not found: value macro - def quux(x: Int): Int = macro quux_impl - ^ -three errors found diff --git a/test/disabled/neg/macro-without-xmacros-a/Impls_1.scala b/test/disabled/neg/macro-without-xmacros-a/Impls_1.scala deleted file mode 100644 index 2493c81c95..0000000000 --- a/test/disabled/neg/macro-without-xmacros-a/Impls_1.scala +++ /dev/null @@ -1,18 +0,0 @@ -import scala.reflect.makro.{Context => Ctx} - -object Impls { - def foo_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(1)))) - } - - def bar_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(2)))) - } - - def quux_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(3)))) - } -} diff --git a/test/disabled/neg/macro-without-xmacros-a/Macros_2.scala b/test/disabled/neg/macro-without-xmacros-a/Macros_2.scala deleted file mode 100644 index 62f9dcf505..0000000000 --- a/test/disabled/neg/macro-without-xmacros-a/Macros_2.scala +++ /dev/null @@ -1,12 +0,0 @@ -import Impls._ - -object Macros { - object Shmacros { - def foo(x: Int): Int = macro foo_impl - } - def bar(x: Int): Int = macro bar_impl -} - -class Macros { - def quux(x: Int): Int = macro quux_impl -} \ No newline at end of file diff --git a/test/disabled/neg/macro-without-xmacros-a/Test_3.scala b/test/disabled/neg/macro-without-xmacros-a/Test_3.scala deleted file mode 100644 index e9a10e20c9..0000000000 --- a/test/disabled/neg/macro-without-xmacros-a/Test_3.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - import Macros.Shmacros._ - println(foo(2) + Macros.bar(2) * new Macros().quux(4)) -} \ No newline at end of file diff --git a/test/disabled/neg/macro-without-xmacros-b.check b/test/disabled/neg/macro-without-xmacros-b.check deleted file mode 100644 index dce4a084c9..0000000000 --- a/test/disabled/neg/macro-without-xmacros-b.check +++ /dev/null @@ -1,10 +0,0 @@ -Macros_2.scala:3: error: ';' expected but '.' found. - def foo(x: Int): Int = macro Impls.foo_impl - ^ -Macros_2.scala:5: error: ';' expected but '.' found. - def bar(x: Int): Int = macro Impls.bar_impl - ^ -Macros_2.scala:9: error: ';' expected but '.' found. - def quux(x: Int): Int = macro Impls.quux_impl - ^ -three errors found diff --git a/test/disabled/neg/macro-without-xmacros-b/Impls_1.scala b/test/disabled/neg/macro-without-xmacros-b/Impls_1.scala deleted file mode 100644 index 2493c81c95..0000000000 --- a/test/disabled/neg/macro-without-xmacros-b/Impls_1.scala +++ /dev/null @@ -1,18 +0,0 @@ -import scala.reflect.makro.{Context => Ctx} - -object Impls { - def foo_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(1)))) - } - - def bar_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(2)))) - } - - def quux_impl(c: Ctx)(x: c.Expr[Int]): c.mirror.Tree = { - import c.mirror._ - Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(3)))) - } -} diff --git a/test/disabled/neg/macro-without-xmacros-b/Macros_2.scala b/test/disabled/neg/macro-without-xmacros-b/Macros_2.scala deleted file mode 100644 index de7080c7e8..0000000000 --- a/test/disabled/neg/macro-without-xmacros-b/Macros_2.scala +++ /dev/null @@ -1,10 +0,0 @@ -object Macros { - object Shmacros { - def foo(x: Int): Int = macro Impls.foo_impl - } - def bar(x: Int): Int = macro Impls.bar_impl -} - -class Macros { - def quux(x: Int): Int = macro Impls.quux_impl -} \ No newline at end of file diff --git a/test/disabled/neg/macro-without-xmacros-b/Test_3.scala b/test/disabled/neg/macro-without-xmacros-b/Test_3.scala deleted file mode 100644 index e9a10e20c9..0000000000 --- a/test/disabled/neg/macro-without-xmacros-b/Test_3.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - import Macros.Shmacros._ - println(foo(2) + Macros.bar(2) * new Macros().quux(4)) -} \ No newline at end of file diff --git a/test/disabled/run/macro-reflective-mamd-normal-mi.check b/test/disabled/run/macro-reflective-mamd-normal-mi.check deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/test/disabled/run/macro-reflective-mamd-normal-mi.flags b/test/disabled/run/macro-reflective-mamd-normal-mi.flags deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/test/disabled/run/macro-reflective-mamd-normal-mi/Impls_1.scala b/test/disabled/run/macro-reflective-mamd-normal-mi/Impls_1.scala deleted file mode 100644 index dc7d42d23e..0000000000 --- a/test/disabled/run/macro-reflective-mamd-normal-mi/Impls_1.scala +++ /dev/null @@ -1,9 +0,0 @@ -import scala.reflect.makro.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(x: c.Expr[Int]) = { - import c.mirror._ - val body = Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(1)))) - Expr[Int](body) - } -} diff --git a/test/disabled/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala b/test/disabled/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala deleted file mode 100644 index 7cbe425fc8..0000000000 --- a/test/disabled/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala +++ /dev/null @@ -1,16 +0,0 @@ -//object Macros { -// def foo(x: Int) = macro Impls.foo -//} - -object Test extends App { - import scala.reflect.mirror._ - - val macrobody = Select(Ident(newTermName("Impls")), newTermName("foo")) - val macroparam = ValDef(NoMods, newTermName("x"), TypeTree(definitions.IntClass.asType), EmptyTree) - val macrodef = DefDef(Modifiers(Set(scala.reflect.api.Modifier.`macro`)), newTermName("foo"), Nil, List(List(macroparam)), TypeTree(), macrobody) - val modulector = DefDef(NoMods, nme.CONSTRUCTOR, Nil, List(List()), TypeTree(), Block(Apply(Select(Super(This(EmptyTypeName), EmptyTypeName), nme.CONSTRUCTOR), List()))) - val module = ModuleDef(NoMods, newTermName("Macros"), Template(Nil, emptyValDef, List(modulector, macrodef))) - val macroapp = Apply(Select(Ident("Macros"), newTermName("foo")), List(Literal(Constant(42)))) - val tree = Block(macrodef, module, macroapp) - println(tree.eval) -} diff --git a/test/files/neg/macro-deprecate-idents.check b/test/files/neg/macro-deprecate-idents.check new file mode 100644 index 0000000000..f8a7e519df --- /dev/null +++ b/test/files/neg/macro-deprecate-idents.check @@ -0,0 +1,52 @@ +macro-deprecate-idents.scala:2: error: macro is now a reserved word; usage as an identifier is deprecated + val macro = ??? + ^ +macro-deprecate-idents.scala:6: error: macro is now a reserved word; usage as an identifier is deprecated + var macro = ??? + ^ +macro-deprecate-idents.scala:10: error: macro is now a reserved word; usage as an identifier is deprecated + type macro = Int + ^ +macro-deprecate-idents.scala:14: error: macro is now a reserved word; usage as an identifier is deprecated + class macro + ^ +macro-deprecate-idents.scala:18: error: macro is now a reserved word; usage as an identifier is deprecated + class macro + ^ +macro-deprecate-idents.scala:22: error: macro is now a reserved word; usage as an identifier is deprecated + object macro + ^ +macro-deprecate-idents.scala:26: error: macro is now a reserved word; usage as an identifier is deprecated + object macro + ^ +macro-deprecate-idents.scala:30: error: macro is now a reserved word; usage as an identifier is deprecated + trait macro + ^ +macro-deprecate-idents.scala:34: error: macro is now a reserved word; usage as an identifier is deprecated + trait macro + ^ +macro-deprecate-idents.scala:37: error: macro is now a reserved word; usage as an identifier is deprecated +package macro { + ^ +macro-deprecate-idents.scala:38: error: macro is now a reserved word; usage as an identifier is deprecated + package macro.bar { + ^ +macro-deprecate-idents.scala:43: error: macro is now a reserved word; usage as an identifier is deprecated + package macro.foo { + ^ +macro-deprecate-idents.scala:48: error: macro is now a reserved word; usage as an identifier is deprecated + val Some(macro) = Some(42) + ^ +macro-deprecate-idents.scala:49: error: macro is now a reserved word; usage as an identifier is deprecated + macro match { + ^ +macro-deprecate-idents.scala:50: error: macro is now a reserved word; usage as an identifier is deprecated + case macro => println(macro) + ^ +macro-deprecate-idents.scala:50: error: macro is now a reserved word; usage as an identifier is deprecated + case macro => println(macro) + ^ +macro-deprecate-idents.scala:55: error: macro is now a reserved word; usage as an identifier is deprecated + def macro = 2 + ^ +17 errors found diff --git a/test/files/neg/macro-deprecate-idents.flags b/test/files/neg/macro-deprecate-idents.flags new file mode 100644 index 0000000000..e8fb65d50c --- /dev/null +++ b/test/files/neg/macro-deprecate-idents.flags @@ -0,0 +1 @@ +-Xfatal-warnings \ No newline at end of file diff --git a/test/files/neg/macro-deprecate-idents.scala b/test/files/neg/macro-deprecate-idents.scala new file mode 100644 index 0000000000..23c398e341 --- /dev/null +++ b/test/files/neg/macro-deprecate-idents.scala @@ -0,0 +1,56 @@ +object Test1 { + val macro = ??? +} + +object Test2 { + var macro = ??? +} + +object Test3 { + type macro = Int +} + +package test4 { + class macro +} + +object Test5 { + class macro +} + +package test6 { + object macro +} + +object Test7 { + object macro +} + +package test8 { + trait macro +} + +object Test9 { + trait macro +} + +package macro { + package macro.bar { + } +} + +package foo { + package macro.foo { + } +} + +object Test12 { + val Some(macro) = Some(42) + macro match { + case macro => println(macro) + } +} + +object Test13 { + def macro = 2 +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape-d.check b/test/files/neg/macro-invalidshape-d.check new file mode 100644 index 0000000000..f0d77e2f2d --- /dev/null +++ b/test/files/neg/macro-invalidshape-d.check @@ -0,0 +1,8 @@ +Macros_Test_2.scala:2: warning: macro is now a reserved word; usage as an identifier is deprecated + def foo(x: Any) = {2; macro Impls.foo} + ^ +Macros_Test_2.scala:2: error: ';' expected but '.' found. + def foo(x: Any) = {2; macro Impls.foo} + ^ +one warning found +one error found diff --git a/test/files/neg/macro-invalidshape-d.flags b/test/files/neg/macro-invalidshape-d.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/neg/macro-invalidshape-d.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape-d/Impls_1.scala b/test/files/neg/macro-invalidshape-d/Impls_1.scala new file mode 100644 index 0000000000..7b1620d117 --- /dev/null +++ b/test/files/neg/macro-invalidshape-d/Impls_1.scala @@ -0,0 +1,5 @@ +import scala.reflect.makro.{Context => Ctx} + +object Impls { + def foo(c: Ctx)(x: c.Expr[Any]) = ??? +} diff --git a/test/files/neg/macro-invalidshape-d/Macros_Test_2.scala b/test/files/neg/macro-invalidshape-d/Macros_Test_2.scala new file mode 100644 index 0000000000..bacd9a6e7c --- /dev/null +++ b/test/files/neg/macro-invalidshape-d/Macros_Test_2.scala @@ -0,0 +1,8 @@ +object Macros { + def foo(x: Any) = {2; macro Impls.foo} +} + +object Test extends App { + import Macros._ + foo(42) +} \ No newline at end of file diff --git a/test/files/neg/macro-without-xmacros-a.check b/test/files/neg/macro-without-xmacros-a.check new file mode 100644 index 0000000000..fd2667dbb8 --- /dev/null +++ b/test/files/neg/macro-without-xmacros-a.check @@ -0,0 +1,17 @@ +Macros_2.scala:5: error: macro definition needs to be enabled +by making the implicit value language.experimental.macros visible. +This can be achieved by adding the import clause 'import language.experimental.macros' +or by setting the compiler option -language:experimental.macros. +See the Scala docs for value scala.language.experimental.macros for a discussion +why the feature needs to be explicitly enabled. + def foo(x: Int): Int = macro foo_impl + ^ +Macros_2.scala:7: error: macro definition needs to be enabled +by making the implicit value language.experimental.macros visible. + def bar(x: Int): Int = macro bar_impl + ^ +Macros_2.scala:11: error: macro definition needs to be enabled +by making the implicit value language.experimental.macros visible. + def quux(x: Int): Int = macro quux_impl + ^ +three errors found diff --git a/test/files/neg/macro-without-xmacros-a/Impls_1.scala b/test/files/neg/macro-without-xmacros-a/Impls_1.scala new file mode 100644 index 0000000000..01daf12b1a --- /dev/null +++ b/test/files/neg/macro-without-xmacros-a/Impls_1.scala @@ -0,0 +1,18 @@ +import scala.reflect.makro.{Context => Ctx} + +object Impls { + def foo_impl(c: Ctx)(x: c.Expr[Int]): c.Expr[Int] = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(1)))) + } + + def bar_impl(c: Ctx)(x: c.Expr[Int]): c.Expr[Int] = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(2)))) + } + + def quux_impl(c: Ctx)(x: c.Expr[Int]): c.Expr[Int] = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(3)))) + } +} diff --git a/test/files/neg/macro-without-xmacros-a/Macros_2.scala b/test/files/neg/macro-without-xmacros-a/Macros_2.scala new file mode 100644 index 0000000000..62f9dcf505 --- /dev/null +++ b/test/files/neg/macro-without-xmacros-a/Macros_2.scala @@ -0,0 +1,12 @@ +import Impls._ + +object Macros { + object Shmacros { + def foo(x: Int): Int = macro foo_impl + } + def bar(x: Int): Int = macro bar_impl +} + +class Macros { + def quux(x: Int): Int = macro quux_impl +} \ No newline at end of file diff --git a/test/files/neg/macro-without-xmacros-a/Test_3.scala b/test/files/neg/macro-without-xmacros-a/Test_3.scala new file mode 100644 index 0000000000..e9a10e20c9 --- /dev/null +++ b/test/files/neg/macro-without-xmacros-a/Test_3.scala @@ -0,0 +1,4 @@ +object Test extends App { + import Macros.Shmacros._ + println(foo(2) + Macros.bar(2) * new Macros().quux(4)) +} \ No newline at end of file diff --git a/test/files/neg/macro-without-xmacros-b.check b/test/files/neg/macro-without-xmacros-b.check new file mode 100644 index 0000000000..2d675b8319 --- /dev/null +++ b/test/files/neg/macro-without-xmacros-b.check @@ -0,0 +1,17 @@ +Macros_2.scala:3: error: macro definition needs to be enabled +by making the implicit value language.experimental.macros visible. +This can be achieved by adding the import clause 'import language.experimental.macros' +or by setting the compiler option -language:experimental.macros. +See the Scala docs for value scala.language.experimental.macros for a discussion +why the feature needs to be explicitly enabled. + def foo(x: Int): Int = macro Impls.foo_impl + ^ +Macros_2.scala:5: error: macro definition needs to be enabled +by making the implicit value language.experimental.macros visible. + def bar(x: Int): Int = macro Impls.bar_impl + ^ +Macros_2.scala:9: error: macro definition needs to be enabled +by making the implicit value language.experimental.macros visible. + def quux(x: Int): Int = macro Impls.quux_impl + ^ +three errors found diff --git a/test/files/neg/macro-without-xmacros-b/Impls_1.scala b/test/files/neg/macro-without-xmacros-b/Impls_1.scala new file mode 100644 index 0000000000..01daf12b1a --- /dev/null +++ b/test/files/neg/macro-without-xmacros-b/Impls_1.scala @@ -0,0 +1,18 @@ +import scala.reflect.makro.{Context => Ctx} + +object Impls { + def foo_impl(c: Ctx)(x: c.Expr[Int]): c.Expr[Int] = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(1)))) + } + + def bar_impl(c: Ctx)(x: c.Expr[Int]): c.Expr[Int] = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(2)))) + } + + def quux_impl(c: Ctx)(x: c.Expr[Int]): c.Expr[Int] = { + import c.mirror._ + Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(3)))) + } +} diff --git a/test/files/neg/macro-without-xmacros-b/Macros_2.scala b/test/files/neg/macro-without-xmacros-b/Macros_2.scala new file mode 100644 index 0000000000..de7080c7e8 --- /dev/null +++ b/test/files/neg/macro-without-xmacros-b/Macros_2.scala @@ -0,0 +1,10 @@ +object Macros { + object Shmacros { + def foo(x: Int): Int = macro Impls.foo_impl + } + def bar(x: Int): Int = macro Impls.bar_impl +} + +class Macros { + def quux(x: Int): Int = macro Impls.quux_impl +} \ No newline at end of file diff --git a/test/files/neg/macro-without-xmacros-b/Test_3.scala b/test/files/neg/macro-without-xmacros-b/Test_3.scala new file mode 100644 index 0000000000..e9a10e20c9 --- /dev/null +++ b/test/files/neg/macro-without-xmacros-b/Test_3.scala @@ -0,0 +1,4 @@ +object Test extends App { + import Macros.Shmacros._ + println(foo(2) + Macros.bar(2) * new Macros().quux(4)) +} \ No newline at end of file diff --git a/test/files/pos/macro-deprecate-dont-touch-backquotedidents.flags b/test/files/pos/macro-deprecate-dont-touch-backquotedidents.flags new file mode 100644 index 0000000000..e8fb65d50c --- /dev/null +++ b/test/files/pos/macro-deprecate-dont-touch-backquotedidents.flags @@ -0,0 +1 @@ +-Xfatal-warnings \ No newline at end of file diff --git a/test/files/pos/macro-deprecate-dont-touch-backquotedidents.scala b/test/files/pos/macro-deprecate-dont-touch-backquotedidents.scala new file mode 100644 index 0000000000..69a7333011 --- /dev/null +++ b/test/files/pos/macro-deprecate-dont-touch-backquotedidents.scala @@ -0,0 +1,56 @@ +object Test1 { + val `macro` = ??? +} + +object Test2 { + var `macro` = ??? +} + +object Test3 { + type `macro` = Int +} + +package test4 { + class `macro` +} + +object Test5 { + class `macro` +} + +package test6 { + object `macro` +} + +object Test7 { + object `macro` +} + +package test8 { + trait `macro` +} + +object Test9 { + trait `macro` +} + +package `macro` { + package `macro`.bar { + } +} + +package foo { + package `macro`.foo { + } +} + +//object Test12 { +// val Some(`macro`) = Some(42) +// `macro` match { +// case `macro` => println(`macro`) +// } +//} + +object Test13 { + def `macro` = 2 +} \ No newline at end of file diff --git a/test/files/run/macro-reflective-mamd-normal-mi.check b/test/files/run/macro-reflective-mamd-normal-mi.check new file mode 100644 index 0000000000..ac4213d6e9 --- /dev/null +++ b/test/files/run/macro-reflective-mamd-normal-mi.check @@ -0,0 +1 @@ +43 \ No newline at end of file diff --git a/test/files/run/macro-reflective-mamd-normal-mi/Impls_1.scala b/test/files/run/macro-reflective-mamd-normal-mi/Impls_1.scala new file mode 100644 index 0000000000..dc7d42d23e --- /dev/null +++ b/test/files/run/macro-reflective-mamd-normal-mi/Impls_1.scala @@ -0,0 +1,9 @@ +import scala.reflect.makro.{Context => Ctx} + +object Impls { + def foo(c: Ctx)(x: c.Expr[Int]) = { + import c.mirror._ + val body = Apply(Select(x.tree, newTermName("$plus")), List(Literal(Constant(1)))) + Expr[Int](body) + } +} diff --git a/test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala b/test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala new file mode 100644 index 0000000000..cf34f1685d --- /dev/null +++ b/test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala @@ -0,0 +1,17 @@ +//object Macros { +// def foo(x: Int) = macro Impls.foo +//} + +object Test extends App { + import scala.reflect.mirror._ + + val macrobody = Select(Ident(newTermName("Impls")), newTermName("foo")) + val macroparam = ValDef(NoMods, newTermName("x"), TypeTree(definitions.IntClass.asType), EmptyTree) + val macrodef = DefDef(Modifiers(Set(scala.reflect.api.Modifier.`macro`)), newTermName("foo"), Nil, List(List(macroparam)), TypeTree(), macrobody) + val modulector = DefDef(NoMods, nme.CONSTRUCTOR, Nil, List(List()), TypeTree(), Block(Apply(Select(Super(This(EmptyTypeName), EmptyTypeName), nme.CONSTRUCTOR), List()))) + val module = ModuleDef(NoMods, newTermName("Macros"), Template(Nil, emptyValDef, List(modulector, macrodef))) + val macroapp = Apply(Select(Ident("Macros"), newTermName("foo")), List(Literal(Constant(42)))) + val tree = Block(macrodef, module, macroapp) + val toolbox = mkToolBox(options = "-language:experimental.macros") + println(toolbox.runExpr(tree)) +} diff --git a/test/files/run/t2886.check b/test/files/run/t2886.check index 5fe1e73a45..8d97a82799 100644 --- a/test/files/run/t2886.check +++ b/test/files/run/t2886.check @@ -1,5 +1,5 @@ -((x: scala.Predef.String) => { - val x$1 = x; - val x$2 = x; - Test.test(x$2, x$1) -}) +((x: String) => { + val x$1 = x; + val x$2 = x; + Test.this.test(x$2, x$1) +}) diff --git a/test/files/run/t2886.scala b/test/files/run/t2886.scala new file mode 100644 index 0000000000..e0835a0a44 --- /dev/null +++ b/test/files/run/t2886.scala @@ -0,0 +1,9 @@ +import scala.reflect.mirror._ + +object Test { + def test(name: String, address: String) = null + def main(args: Array[String]) = { + val tree = reify((x:String) => test(address=x,name=x)).tree + println(tree) + } +} -- cgit v1.2.3