From 70f001181734f76064d97ec25b1afd6aad49b684 Mon Sep 17 00:00:00 2001 From: Eugene Burmako Date: Mon, 14 Jan 2013 23:55:25 +0100 Subject: refactors macro tests putting in a nutshell, this patch: * condenses some macro-XXX-a/b/c/... bundles * renames some tests to prepare for other macro flavors * introduces some additional tests --- test/files/neg/macro-invalidimpl-a.check | 4 - test/files/neg/macro-invalidimpl-a.flags | 1 - test/files/neg/macro-invalidimpl-a/Impls_1.scala | 5 -- .../neg/macro-invalidimpl-a/Macros_Test_2.scala | 9 --- test/files/neg/macro-invalidimpl-b.check | 4 - test/files/neg/macro-invalidimpl-b.flags | 1 - test/files/neg/macro-invalidimpl-b/Impls_1.scala | 5 -- .../neg/macro-invalidimpl-b/Macros_Test_2.scala | 9 --- test/files/neg/macro-invalidimpl-c.check | 4 - test/files/neg/macro-invalidimpl-c.flags | 1 - .../neg/macro-invalidimpl-c/Impls_Macros_1.scala | 9 --- test/files/neg/macro-invalidimpl-c/Test_2.scala | 3 - test/files/neg/macro-invalidimpl-d.check | 4 - test/files/neg/macro-invalidimpl-d.flags | 1 - test/files/neg/macro-invalidimpl-d/Impls_1.scala | 7 -- .../neg/macro-invalidimpl-d/Macros_Test_2.scala | 7 -- test/files/neg/macro-invalidimpl-e.check | 13 ---- test/files/neg/macro-invalidimpl-e.flags | 1 - test/files/neg/macro-invalidimpl-e/Impls_1.scala | 6 -- .../neg/macro-invalidimpl-e/Macros_Test_2.scala | 9 --- test/files/neg/macro-invalidimpl-f.check | 7 -- test/files/neg/macro-invalidimpl-f.flags | 1 - test/files/neg/macro-invalidimpl-f/Impls_1.scala | 11 --- .../neg/macro-invalidimpl-f/Macros_Test_2.scala | 9 --- test/files/neg/macro-invalidimpl-g.check | 7 -- test/files/neg/macro-invalidimpl-g.flags | 1 - test/files/neg/macro-invalidimpl-g/Impls_1.scala | 11 --- .../neg/macro-invalidimpl-g/Macros_Test_2.scala | 8 -- test/files/neg/macro-invalidimpl-h.check | 4 - test/files/neg/macro-invalidimpl-h.flags | 1 - test/files/neg/macro-invalidimpl-h/Impls_1.scala | 5 -- .../neg/macro-invalidimpl-h/Macros_Test_2.scala | 8 -- test/files/neg/macro-invalidimpl-i.check | 4 - test/files/neg/macro-invalidimpl-i.flags | 1 - test/files/neg/macro-invalidimpl-i/Impls_1.scala | 7 -- .../neg/macro-invalidimpl-i/Macros_Test_2.scala | 5 -- test/files/neg/macro-invalidimpl.check | 43 +++++++++++ test/files/neg/macro-invalidimpl.flags | 1 + test/files/neg/macro-invalidimpl/Impls_1.scala | 40 ++++++++++ .../neg/macro-invalidimpl/Macros_Test_2.scala | 55 ++++++++++++++ test/files/neg/macro-invalidret-nontree.flags | 1 - .../neg/macro-invalidret-nontree/Impls_1.scala | 5 -- .../macro-invalidret-nontree/Macros_Test_2.scala | 8 -- .../neg/macro-invalidret-nonuniversetree.flags | 1 - .../macro-invalidret-nonuniversetree/Impls_1.scala | 6 -- .../Macros_Test_2.scala | 8 -- test/files/neg/macro-invalidret.check | 13 ++++ test/files/neg/macro-invalidret.flags | 1 + test/files/neg/macro-invalidret/Impls_1.scala | 7 ++ .../files/neg/macro-invalidret/Macros_Test_2.scala | 10 +++ test/files/neg/macro-invalidshape-a.check | 5 -- test/files/neg/macro-invalidshape-a.flags | 1 - test/files/neg/macro-invalidshape-a/Impls_1.scala | 5 -- .../neg/macro-invalidshape-a/Macros_Test_2.scala | 8 -- test/files/neg/macro-invalidshape-b.check | 5 -- test/files/neg/macro-invalidshape-b.flags | 1 - test/files/neg/macro-invalidshape-b/Impls_1.scala | 5 -- .../neg/macro-invalidshape-b/Macros_Test_2.scala | 8 -- test/files/neg/macro-invalidshape-c.check | 9 --- test/files/neg/macro-invalidshape-c.flags | 1 - test/files/neg/macro-invalidshape-c/Impls_1.scala | 5 -- .../neg/macro-invalidshape-c/Macros_Test_2.scala | 8 -- 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-invalidshape.check | 17 +++++ test/files/neg/macro-invalidshape.flags | 1 + test/files/neg/macro-invalidshape/Impls_1.scala | 5 ++ .../neg/macro-invalidshape/Macros_Test_2.scala | 12 +++ .../macro-invalidsig-context-bounds/Impls_1.scala | 9 --- .../Macros_Test_1.scala | 8 -- .../neg/macro-invalidsig-ctx-badargc/Impls_1.scala | 3 - .../Macros_Test_2.scala | 8 -- .../neg/macro-invalidsig-ctx-badtype/Impls_1.scala | 5 -- .../Macros_Test_2.scala | 8 -- .../macro-invalidsig-ctx-badvarargs/Impls_1.scala | 5 -- .../Macros_Test_2.scala | 8 -- .../neg/macro-invalidsig-ctx-noctx/Impls_1.scala | 5 -- .../macro-invalidsig-ctx-noctx/Macros_Test_2.scala | 8 -- .../Impls_Macros_1.scala | 19 ----- .../macro-invalidsig-implicit-params/Test_2.scala | 4 - .../Impls_Macros_1.scala | 9 --- .../macro-invalidsig-params-badargc/Test_2.scala | 4 - .../macro-invalidsig-params-badtype/Test_2.scala | 4 - .../Impls_Macros_1.scala | 9 --- .../Test_2.scala | 4 - .../Impls_Macros_1.scala | 9 --- .../Test_2.scala | 4 - .../macro-invalidsig-tparams-badtype/Impls_1.scala | 5 -- .../Macros_Test_2.scala | 8 -- .../Impls_1.scala | 5 -- .../Macros_Test_2.scala | 8 -- .../Impls_1.scala | 5 -- .../Macros_Test_2.scala | 8 -- .../Impls_1.scala | 6 -- .../Macros_Test_2.scala | 8 -- .../Impls_1.scala | 11 --- .../Macros_Test_2.scala | 11 --- .../Impls_1.scala | 12 --- .../Macros_Test_2.scala | 11 --- test/files/neg/macro-invalidsig.check | 82 ++++++++++++++++++++ test/files/neg/macro-invalidsig.flags | 1 + test/files/neg/macro-invalidsig/Impls_1.scala | 88 ++++++++++++++++++++++ .../files/neg/macro-invalidsig/Macros_Test_2.scala | 83 ++++++++++++++++++++ test/files/neg/macro-invalidusage-badargs.check | 20 ++++- .../macro-invalidusage-badargs/Macros_Test_2.scala | 12 +-- .../files/neg/macro-invalidusage-badbounds-a.check | 4 - .../files/neg/macro-invalidusage-badbounds-a.flags | 1 - .../macro-invalidusage-badbounds-a/Impls_1.scala | 5 -- .../Macros_Test_2.scala | 8 -- test/files/neg/macro-invalidusage-badbounds.check | 4 + test/files/neg/macro-invalidusage-badbounds.flags | 1 + .../neg/macro-invalidusage-badbounds/Impls_1.scala | 5 ++ .../Macros_Test_2.scala | 8 ++ .../neg/macro-invalidusage-badtargs-untyped.check | 18 +++++ .../neg/macro-invalidusage-badtargs-untyped.flags | 1 + test/files/neg/macro-invalidusage-badtargs.check | 22 +++++- .../Macros_Test_2.scala | 12 ++- .../files/neg/macro-invalidusage-nontypeable.check | 4 + .../files/neg/macro-invalidusage-nontypeable.flags | 1 + .../Impls_Macros_1.scala | 13 ++++ .../macro-invalidusage-nontypeable/Test_2.scala | 3 + test/files/neg/macro-invalidusage-presuper.check | 4 + test/files/neg/macro-invalidusage-presuper.flags | 1 + .../neg/macro-invalidusage-presuper/Impls_1.scala | 5 ++ .../Macros_Test_2.scala | 3 + test/files/run/macro-declared-in-annotation.check | 1 - test/files/run/macro-declared-in-annotation.flags | 1 - .../run/macro-declared-in-annotation/Impls_1.scala | 11 --- .../macro-declared-in-annotation/Macros_2.scala | 8 -- .../run/macro-declared-in-annotation/Test_3.scala | 3 - test/files/run/macro-declared-in-anonymous.check | 2 - test/files/run/macro-declared-in-anonymous.flags | 1 - .../run/macro-declared-in-anonymous/Impls_1.scala | 11 --- .../Macros_Test_2.scala | 6 -- test/files/run/macro-declared-in-block.check | 2 - test/files/run/macro-declared-in-block.flags | 1 - .../run/macro-declared-in-block/Impls_1.scala | 11 --- .../macro-declared-in-block/Macros_Test_2.scala | 6 -- test/files/run/macro-declared-in-class-class.check | 2 - test/files/run/macro-declared-in-class-class.flags | 1 - .../macro-declared-in-class-class/Impls_1.scala | 11 --- .../Macros_Test_2.scala | 10 --- .../files/run/macro-declared-in-class-object.check | 2 - .../files/run/macro-declared-in-class-object.flags | 1 - .../macro-declared-in-class-object/Impls_1.scala | 11 --- .../Macros_Test_2.scala | 10 --- test/files/run/macro-declared-in-class.check | 2 - test/files/run/macro-declared-in-class.flags | 1 - .../run/macro-declared-in-class/Impls_1.scala | 11 --- .../macro-declared-in-class/Macros_Test_2.scala | 7 -- .../run/macro-declared-in-default-param.check | 5 -- .../run/macro-declared-in-default-param.flags | 1 - .../macro-declared-in-default-param/Impls_1.scala | 11 --- .../Macros_Test_2.scala | 7 -- .../run/macro-declared-in-implicit-class.check | 2 - .../run/macro-declared-in-implicit-class.flags | 1 - .../Impls_Macros_1.scala | 19 ----- .../macro-declared-in-implicit-class/Test_2.scala | 4 - test/files/run/macro-declared-in-method.check | 2 - test/files/run/macro-declared-in-method.flags | 1 - .../run/macro-declared-in-method/Impls_1.scala | 11 --- .../macro-declared-in-method/Macros_Test_2.scala | 8 -- .../files/run/macro-declared-in-object-class.check | 2 - .../files/run/macro-declared-in-object-class.flags | 1 - .../macro-declared-in-object-class/Impls_1.scala | 11 --- .../Macros_Test_2.scala | 10 --- .../run/macro-declared-in-object-object.check | 2 - .../run/macro-declared-in-object-object.flags | 1 - .../macro-declared-in-object-object/Impls_1.scala | 11 --- .../Macros_Test_2.scala | 10 --- test/files/run/macro-declared-in-object.check | 2 - test/files/run/macro-declared-in-object.flags | 1 - .../run/macro-declared-in-object/Impls_1.scala | 11 --- .../macro-declared-in-object/Macros_Test_2.scala | 7 -- .../run/macro-declared-in-package-object.check | 2 - .../run/macro-declared-in-package-object.flags | 1 - .../macro-declared-in-package-object/Impls_1.scala | 11 --- .../Macros_Test_2.scala | 8 -- test/files/run/macro-declared-in-refinement.check | 2 - test/files/run/macro-declared-in-refinement.flags | 1 - .../run/macro-declared-in-refinement/Impls_1.scala | 11 --- .../Macros_Test_2.scala | 9 --- test/files/run/macro-declared-in-trait.check | 15 ---- test/files/run/macro-declared-in-trait.flags | 1 - .../run/macro-declared-in-trait/Impls_1.scala | 11 --- .../macro-declared-in-trait/Macros_Test_2.scala | 13 ---- test/files/run/macro-def-infer-return-type-a.check | 1 - test/files/run/macro-def-infer-return-type-a.flags | 1 - .../macro-def-infer-return-type-a/Impls_1.scala | 5 -- .../Macros_Test_2.scala | 4 - test/files/run/macro-def-infer-return-type-b.check | 6 -- test/files/run/macro-def-infer-return-type-b.flags | 1 - .../Impls_Macros_1.scala | 10 --- .../run/macro-def-infer-return-type-b/Test_2.scala | 8 -- test/files/run/macro-def-infer-return-type-c.check | 1 - test/files/run/macro-def-infer-return-type-c.flags | 1 - .../macro-def-infer-return-type-c/Impls_1.scala | 5 -- .../Macros_Test_2.scala | 4 - test/files/run/macro-def-infer-return-type.check | 8 ++ test/files/run/macro-def-infer-return-type.flags | 1 + .../run/macro-def-infer-return-type/Impls_1.scala | 14 ++++ .../Macros_Test_2.scala | 24 ++++++ test/files/run/macro-def-path-dependent-a.check | 1 - test/files/run/macro-def-path-dependent-a.flags | 1 - .../Impls_Macros_1.scala | 21 ------ .../run/macro-def-path-dependent-a/Test_2.scala | 3 - test/files/run/macro-def-path-dependent-b.check | 1 - test/files/run/macro-def-path-dependent-b.flags | 1 - .../Impls_Macros_1.scala | 20 ----- .../run/macro-def-path-dependent-b/Test_2.scala | 3 - test/files/run/macro-def-path-dependent-c.check | 1 - test/files/run/macro-def-path-dependent-c.flags | 1 - .../Impls_Macros_1.scala | 20 ----- .../run/macro-def-path-dependent-c/Test_2.scala | 3 - test/files/run/macro-def-path-dependent-d1.check | 1 - test/files/run/macro-def-path-dependent-d1.flags | 1 - .../Impls_Macros_1.scala | 9 --- .../run/macro-def-path-dependent-d1/Test_2.scala | 3 - test/files/run/macro-def-path-dependent-d2.check | 1 - test/files/run/macro-def-path-dependent-d2.flags | 1 - .../run/macro-def-path-dependent-d2/Impls_1.scala | 7 -- .../run/macro-def-path-dependent-d2/Macros_2.scala | 7 -- .../run/macro-def-path-dependent-d2/Test_3.scala | 3 - test/files/run/macro-def-path-dependent.check | 1 + test/files/run/macro-def-path-dependent.flags | 1 + .../files/run/macro-def-path-dependent/Dummy.scala | 3 + .../run/macro-def-path-dependent/Test_1.scala | 23 ++++++ .../run/macro-def-path-dependent/Test_2.scala | 22 ++++++ .../run/macro-def-path-dependent/Test_3.scala | 22 ++++++ .../run/macro-def-path-dependent/Test_4.scala | 11 +++ .../run/macro-def-path-dependent/Test_5.scala | 9 +++ .../run/macro-def-path-dependent/Test_6.scala | 9 +++ test/files/run/macro-expand-nullary-generic.check | 10 +-- .../run/macro-expand-nullary-generic/Impls_1.scala | 12 +-- .../run/macro-expand-nullary-nongeneric.check | 10 +-- .../macro-expand-nullary-nongeneric/Impls_1.scala | 13 ++-- test/files/run/macro-expand-tparams-bounds-a.check | 0 test/files/run/macro-expand-tparams-bounds-a.flags | 1 - .../macro-expand-tparams-bounds-a/Impls_1.scala | 5 -- .../Macros_Test_2.scala | 8 -- test/files/run/macro-expand-tparams-bounds-b.check | 0 test/files/run/macro-expand-tparams-bounds-b.flags | 1 - .../macro-expand-tparams-bounds-b/Impls_1.scala | 7 -- .../Macros_Test_2.scala | 10 --- test/files/run/macro-expand-tparams-bounds.check | 0 test/files/run/macro-expand-tparams-bounds.flags | 1 + .../run/macro-expand-tparams-bounds/Impls_1.scala | 12 +++ .../Macros_Test_2.scala | 12 +++ .../run/macro-expand-tparams-only-in-impl.flags | 1 - .../Impls_1.scala | 5 -- .../Macros_Test_2.scala | 8 -- test/files/run/macro-expand-tparams-optional.check | 1 - test/files/run/macro-expand-tparams-optional.flags | 1 - .../macro-expand-tparams-optional/Impls_1.scala | 9 --- .../Macros_Test_2.scala | 4 - test/files/run/macro-expand-tparams-prefix-a.check | 4 - test/files/run/macro-expand-tparams-prefix-a.flags | 1 - .../macro-expand-tparams-prefix-a/Impls_1.scala | 11 --- .../Macros_Test_2.scala | 10 --- test/files/run/macro-expand-tparams-prefix-b.check | 2 - test/files/run/macro-expand-tparams-prefix-b.flags | 1 - .../macro-expand-tparams-prefix-b/Impls_1.scala | 12 --- .../Macros_Test_2.scala | 10 --- .../files/run/macro-expand-tparams-prefix-c1.check | 3 - .../files/run/macro-expand-tparams-prefix-c1.flags | 1 - .../macro-expand-tparams-prefix-c1/Impls_1.scala | 13 ---- .../Macros_Test_2.scala | 11 --- .../files/run/macro-expand-tparams-prefix-c2.check | 3 - .../files/run/macro-expand-tparams-prefix-c2.flags | 1 - .../Impls_Macros_1.scala | 19 ----- .../macro-expand-tparams-prefix-c2/Test_2.scala | 5 -- .../files/run/macro-expand-tparams-prefix-d1.check | 3 - .../files/run/macro-expand-tparams-prefix-d1.flags | 1 - .../macro-expand-tparams-prefix-d1/Impls_1.scala | 13 ---- .../Macros_Test_2.scala | 11 --- test/files/run/macro-expand-tparams-prefix.check | 20 +++++ test/files/run/macro-expand-tparams-prefix.flags | 1 + .../run/macro-expand-tparams-prefix/Impls_1.scala | 40 ++++++++++ .../Macros_Test_2.scala | 57 ++++++++++++++ .../files/run/macro-impl-tparam-only-in-impl.flags | 1 + .../macro-impl-tparam-only-in-impl/Impls_1.scala | 5 ++ .../Macros_Test_2.scala | 8 ++ .../macro-impl-tparam-typetag-is-optional.check | 1 + .../macro-impl-tparam-typetag-is-optional.flags | 1 + .../Impls_1.scala | 9 +++ .../Macros_Test_2.scala | 4 + .../run/macro-term-declared-in-annotation.check | 1 + .../run/macro-term-declared-in-annotation.flags | 1 + .../Impls_1.scala | 11 +++ .../Macros_2.scala | 8 ++ .../macro-term-declared-in-annotation/Test_3.scala | 3 + .../run/macro-term-declared-in-anonymous.check | 2 + .../run/macro-term-declared-in-anonymous.flags | 1 + .../macro-term-declared-in-anonymous/Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 6 ++ test/files/run/macro-term-declared-in-block.check | 2 + test/files/run/macro-term-declared-in-block.flags | 1 + .../run/macro-term-declared-in-block/Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 6 ++ .../run/macro-term-declared-in-class-class.check | 2 + .../run/macro-term-declared-in-class-class.flags | 1 + .../Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 10 +++ .../run/macro-term-declared-in-class-object.check | 2 + .../run/macro-term-declared-in-class-object.flags | 1 + .../Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 10 +++ test/files/run/macro-term-declared-in-class.check | 2 + test/files/run/macro-term-declared-in-class.flags | 1 + .../run/macro-term-declared-in-class/Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 7 ++ .../run/macro-term-declared-in-default-param.check | 5 ++ .../run/macro-term-declared-in-default-param.flags | 1 + .../Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 7 ++ .../macro-term-declared-in-implicit-class.check | 2 + .../macro-term-declared-in-implicit-class.flags | 1 + .../Impls_Macros_1.scala | 19 +++++ .../Test_2.scala | 4 + test/files/run/macro-term-declared-in-method.check | 2 + test/files/run/macro-term-declared-in-method.flags | 1 + .../macro-term-declared-in-method/Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 8 ++ .../run/macro-term-declared-in-object-class.check | 2 + .../run/macro-term-declared-in-object-class.flags | 1 + .../Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 10 +++ .../run/macro-term-declared-in-object-object.check | 2 + .../run/macro-term-declared-in-object-object.flags | 1 + .../Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 10 +++ test/files/run/macro-term-declared-in-object.check | 2 + test/files/run/macro-term-declared-in-object.flags | 1 + .../macro-term-declared-in-object/Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 7 ++ .../macro-term-declared-in-package-object.check | 2 + .../macro-term-declared-in-package-object.flags | 1 + .../Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 8 ++ .../run/macro-term-declared-in-refinement.check | 2 + .../run/macro-term-declared-in-refinement.flags | 1 + .../Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 9 +++ test/files/run/macro-term-declared-in-trait.check | 15 ++++ test/files/run/macro-term-declared-in-trait.flags | 1 + .../run/macro-term-declared-in-trait/Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 13 ++++ test/files/run/repl-term-macros.check | 44 +++++++++++ test/files/run/repl-term-macros.scala | 20 +++++ ...erm-declared-in-anonymous-explicit-import.check | 0 .../Impls_1.scala | 11 +++ .../Macros_Test_2.scala | 6 ++ 354 files changed, 1364 insertions(+), 1302 deletions(-) delete mode 100644 test/files/neg/macro-invalidimpl-a.check delete mode 100644 test/files/neg/macro-invalidimpl-a.flags delete mode 100644 test/files/neg/macro-invalidimpl-a/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidimpl-a/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidimpl-b.check delete mode 100644 test/files/neg/macro-invalidimpl-b.flags delete mode 100644 test/files/neg/macro-invalidimpl-b/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidimpl-b/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidimpl-c.check delete mode 100644 test/files/neg/macro-invalidimpl-c.flags delete mode 100644 test/files/neg/macro-invalidimpl-c/Impls_Macros_1.scala delete mode 100644 test/files/neg/macro-invalidimpl-c/Test_2.scala delete mode 100644 test/files/neg/macro-invalidimpl-d.check delete mode 100644 test/files/neg/macro-invalidimpl-d.flags delete mode 100644 test/files/neg/macro-invalidimpl-d/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidimpl-d/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidimpl-e.check delete mode 100644 test/files/neg/macro-invalidimpl-e.flags delete mode 100644 test/files/neg/macro-invalidimpl-e/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidimpl-e/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidimpl-f.check delete mode 100644 test/files/neg/macro-invalidimpl-f.flags delete mode 100644 test/files/neg/macro-invalidimpl-f/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidimpl-f/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidimpl-g.check delete mode 100644 test/files/neg/macro-invalidimpl-g.flags delete mode 100644 test/files/neg/macro-invalidimpl-g/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidimpl-g/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidimpl-h.check delete mode 100644 test/files/neg/macro-invalidimpl-h.flags delete mode 100644 test/files/neg/macro-invalidimpl-h/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidimpl-h/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidimpl-i.check delete mode 100644 test/files/neg/macro-invalidimpl-i.flags delete mode 100644 test/files/neg/macro-invalidimpl-i/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidimpl-i/Macros_Test_2.scala create mode 100644 test/files/neg/macro-invalidimpl.check create mode 100644 test/files/neg/macro-invalidimpl.flags create mode 100644 test/files/neg/macro-invalidimpl/Impls_1.scala create mode 100644 test/files/neg/macro-invalidimpl/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidret-nontree.flags delete mode 100644 test/files/neg/macro-invalidret-nontree/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidret-nontree/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidret-nonuniversetree.flags delete mode 100644 test/files/neg/macro-invalidret-nonuniversetree/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidret-nonuniversetree/Macros_Test_2.scala create mode 100644 test/files/neg/macro-invalidret.check create mode 100644 test/files/neg/macro-invalidret.flags create mode 100644 test/files/neg/macro-invalidret/Impls_1.scala create mode 100644 test/files/neg/macro-invalidret/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidshape-a.check delete mode 100644 test/files/neg/macro-invalidshape-a.flags delete mode 100644 test/files/neg/macro-invalidshape-a/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidshape-a/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidshape-b.check delete mode 100644 test/files/neg/macro-invalidshape-b.flags delete mode 100644 test/files/neg/macro-invalidshape-b/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidshape-b/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidshape-c.check delete mode 100644 test/files/neg/macro-invalidshape-c.flags delete mode 100644 test/files/neg/macro-invalidshape-c/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidshape-c/Macros_Test_2.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 create mode 100644 test/files/neg/macro-invalidshape.check create mode 100644 test/files/neg/macro-invalidshape.flags create mode 100644 test/files/neg/macro-invalidshape/Impls_1.scala create mode 100644 test/files/neg/macro-invalidshape/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-context-bounds/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-context-bounds/Macros_Test_1.scala delete mode 100644 test/files/neg/macro-invalidsig-ctx-badargc/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-ctx-badargc/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-ctx-badtype/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-ctx-badtype/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-ctx-badvarargs/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-ctx-badvarargs/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-ctx-noctx/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-ctx-noctx/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-implicit-params/Impls_Macros_1.scala delete mode 100644 test/files/neg/macro-invalidsig-implicit-params/Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-params-badargc/Impls_Macros_1.scala delete mode 100644 test/files/neg/macro-invalidsig-params-badargc/Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-params-badtype/Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-params-badvarargs/Impls_Macros_1.scala delete mode 100644 test/files/neg/macro-invalidsig-params-badvarargs/Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-params-namemismatch/Impls_Macros_1.scala delete mode 100644 test/files/neg/macro-invalidsig-params-namemismatch/Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-badtype/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-badtype/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-bounds-a/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-bounds-a/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-bounds-b/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-bounds-b/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-notparams-a/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-notparams-a/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-notparams-b/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-notparams-b/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-notparams-c/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidsig-tparams-notparams-c/Macros_Test_2.scala create mode 100644 test/files/neg/macro-invalidsig.check create mode 100644 test/files/neg/macro-invalidsig.flags create mode 100644 test/files/neg/macro-invalidsig/Impls_1.scala create mode 100644 test/files/neg/macro-invalidsig/Macros_Test_2.scala delete mode 100644 test/files/neg/macro-invalidusage-badbounds-a.check delete mode 100644 test/files/neg/macro-invalidusage-badbounds-a.flags delete mode 100644 test/files/neg/macro-invalidusage-badbounds-a/Impls_1.scala delete mode 100644 test/files/neg/macro-invalidusage-badbounds-a/Macros_Test_2.scala create mode 100644 test/files/neg/macro-invalidusage-badbounds.check create mode 100644 test/files/neg/macro-invalidusage-badbounds.flags create mode 100644 test/files/neg/macro-invalidusage-badbounds/Impls_1.scala create mode 100644 test/files/neg/macro-invalidusage-badbounds/Macros_Test_2.scala create mode 100644 test/files/neg/macro-invalidusage-badtargs-untyped.check create mode 100644 test/files/neg/macro-invalidusage-badtargs-untyped.flags create mode 100644 test/files/neg/macro-invalidusage-nontypeable.check create mode 100644 test/files/neg/macro-invalidusage-nontypeable.flags create mode 100644 test/files/neg/macro-invalidusage-nontypeable/Impls_Macros_1.scala create mode 100644 test/files/neg/macro-invalidusage-nontypeable/Test_2.scala create mode 100644 test/files/neg/macro-invalidusage-presuper.check create mode 100644 test/files/neg/macro-invalidusage-presuper.flags create mode 100644 test/files/neg/macro-invalidusage-presuper/Impls_1.scala create mode 100644 test/files/neg/macro-invalidusage-presuper/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-annotation.check delete mode 100644 test/files/run/macro-declared-in-annotation.flags delete mode 100644 test/files/run/macro-declared-in-annotation/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-annotation/Macros_2.scala delete mode 100644 test/files/run/macro-declared-in-annotation/Test_3.scala delete mode 100644 test/files/run/macro-declared-in-anonymous.check delete mode 100644 test/files/run/macro-declared-in-anonymous.flags delete mode 100644 test/files/run/macro-declared-in-anonymous/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-anonymous/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-block.check delete mode 100644 test/files/run/macro-declared-in-block.flags delete mode 100644 test/files/run/macro-declared-in-block/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-block/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-class-class.check delete mode 100644 test/files/run/macro-declared-in-class-class.flags delete mode 100644 test/files/run/macro-declared-in-class-class/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-class-class/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-class-object.check delete mode 100644 test/files/run/macro-declared-in-class-object.flags delete mode 100644 test/files/run/macro-declared-in-class-object/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-class-object/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-class.check delete mode 100644 test/files/run/macro-declared-in-class.flags delete mode 100644 test/files/run/macro-declared-in-class/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-class/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-default-param.check delete mode 100644 test/files/run/macro-declared-in-default-param.flags delete mode 100644 test/files/run/macro-declared-in-default-param/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-default-param/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-implicit-class.check delete mode 100644 test/files/run/macro-declared-in-implicit-class.flags delete mode 100644 test/files/run/macro-declared-in-implicit-class/Impls_Macros_1.scala delete mode 100644 test/files/run/macro-declared-in-implicit-class/Test_2.scala delete mode 100644 test/files/run/macro-declared-in-method.check delete mode 100644 test/files/run/macro-declared-in-method.flags delete mode 100644 test/files/run/macro-declared-in-method/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-method/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-object-class.check delete mode 100644 test/files/run/macro-declared-in-object-class.flags delete mode 100644 test/files/run/macro-declared-in-object-class/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-object-class/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-object-object.check delete mode 100644 test/files/run/macro-declared-in-object-object.flags delete mode 100644 test/files/run/macro-declared-in-object-object/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-object-object/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-object.check delete mode 100644 test/files/run/macro-declared-in-object.flags delete mode 100644 test/files/run/macro-declared-in-object/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-object/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-package-object.check delete mode 100644 test/files/run/macro-declared-in-package-object.flags delete mode 100644 test/files/run/macro-declared-in-package-object/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-package-object/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-refinement.check delete mode 100644 test/files/run/macro-declared-in-refinement.flags delete mode 100644 test/files/run/macro-declared-in-refinement/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-refinement/Macros_Test_2.scala delete mode 100644 test/files/run/macro-declared-in-trait.check delete mode 100644 test/files/run/macro-declared-in-trait.flags delete mode 100644 test/files/run/macro-declared-in-trait/Impls_1.scala delete mode 100644 test/files/run/macro-declared-in-trait/Macros_Test_2.scala delete mode 100644 test/files/run/macro-def-infer-return-type-a.check delete mode 100644 test/files/run/macro-def-infer-return-type-a.flags delete mode 100644 test/files/run/macro-def-infer-return-type-a/Impls_1.scala delete mode 100644 test/files/run/macro-def-infer-return-type-a/Macros_Test_2.scala delete mode 100644 test/files/run/macro-def-infer-return-type-b.check delete mode 100644 test/files/run/macro-def-infer-return-type-b.flags delete mode 100644 test/files/run/macro-def-infer-return-type-b/Impls_Macros_1.scala delete mode 100644 test/files/run/macro-def-infer-return-type-b/Test_2.scala delete mode 100644 test/files/run/macro-def-infer-return-type-c.check delete mode 100644 test/files/run/macro-def-infer-return-type-c.flags delete mode 100644 test/files/run/macro-def-infer-return-type-c/Impls_1.scala delete mode 100644 test/files/run/macro-def-infer-return-type-c/Macros_Test_2.scala create mode 100644 test/files/run/macro-def-infer-return-type.check create mode 100644 test/files/run/macro-def-infer-return-type.flags create mode 100644 test/files/run/macro-def-infer-return-type/Impls_1.scala create mode 100644 test/files/run/macro-def-infer-return-type/Macros_Test_2.scala delete mode 100644 test/files/run/macro-def-path-dependent-a.check delete mode 100644 test/files/run/macro-def-path-dependent-a.flags delete mode 100644 test/files/run/macro-def-path-dependent-a/Impls_Macros_1.scala delete mode 100644 test/files/run/macro-def-path-dependent-a/Test_2.scala delete mode 100644 test/files/run/macro-def-path-dependent-b.check delete mode 100644 test/files/run/macro-def-path-dependent-b.flags delete mode 100644 test/files/run/macro-def-path-dependent-b/Impls_Macros_1.scala delete mode 100644 test/files/run/macro-def-path-dependent-b/Test_2.scala delete mode 100644 test/files/run/macro-def-path-dependent-c.check delete mode 100644 test/files/run/macro-def-path-dependent-c.flags delete mode 100644 test/files/run/macro-def-path-dependent-c/Impls_Macros_1.scala delete mode 100644 test/files/run/macro-def-path-dependent-c/Test_2.scala delete mode 100644 test/files/run/macro-def-path-dependent-d1.check delete mode 100644 test/files/run/macro-def-path-dependent-d1.flags delete mode 100644 test/files/run/macro-def-path-dependent-d1/Impls_Macros_1.scala delete mode 100644 test/files/run/macro-def-path-dependent-d1/Test_2.scala delete mode 100644 test/files/run/macro-def-path-dependent-d2.check delete mode 100644 test/files/run/macro-def-path-dependent-d2.flags delete mode 100644 test/files/run/macro-def-path-dependent-d2/Impls_1.scala delete mode 100644 test/files/run/macro-def-path-dependent-d2/Macros_2.scala delete mode 100644 test/files/run/macro-def-path-dependent-d2/Test_3.scala create mode 100644 test/files/run/macro-def-path-dependent.check create mode 100644 test/files/run/macro-def-path-dependent.flags create mode 100644 test/files/run/macro-def-path-dependent/Dummy.scala create mode 100644 test/files/run/macro-def-path-dependent/Test_1.scala create mode 100644 test/files/run/macro-def-path-dependent/Test_2.scala create mode 100644 test/files/run/macro-def-path-dependent/Test_3.scala create mode 100644 test/files/run/macro-def-path-dependent/Test_4.scala create mode 100644 test/files/run/macro-def-path-dependent/Test_5.scala create mode 100644 test/files/run/macro-def-path-dependent/Test_6.scala delete mode 100644 test/files/run/macro-expand-tparams-bounds-a.check delete mode 100644 test/files/run/macro-expand-tparams-bounds-a.flags delete mode 100644 test/files/run/macro-expand-tparams-bounds-a/Impls_1.scala delete mode 100644 test/files/run/macro-expand-tparams-bounds-a/Macros_Test_2.scala delete mode 100644 test/files/run/macro-expand-tparams-bounds-b.check delete mode 100644 test/files/run/macro-expand-tparams-bounds-b.flags delete mode 100644 test/files/run/macro-expand-tparams-bounds-b/Impls_1.scala delete mode 100644 test/files/run/macro-expand-tparams-bounds-b/Macros_Test_2.scala create mode 100644 test/files/run/macro-expand-tparams-bounds.check create mode 100644 test/files/run/macro-expand-tparams-bounds.flags create mode 100644 test/files/run/macro-expand-tparams-bounds/Impls_1.scala create mode 100644 test/files/run/macro-expand-tparams-bounds/Macros_Test_2.scala delete mode 100644 test/files/run/macro-expand-tparams-only-in-impl.flags delete mode 100644 test/files/run/macro-expand-tparams-only-in-impl/Impls_1.scala delete mode 100644 test/files/run/macro-expand-tparams-only-in-impl/Macros_Test_2.scala delete mode 100644 test/files/run/macro-expand-tparams-optional.check delete mode 100644 test/files/run/macro-expand-tparams-optional.flags delete mode 100644 test/files/run/macro-expand-tparams-optional/Impls_1.scala delete mode 100644 test/files/run/macro-expand-tparams-optional/Macros_Test_2.scala delete mode 100644 test/files/run/macro-expand-tparams-prefix-a.check delete mode 100644 test/files/run/macro-expand-tparams-prefix-a.flags delete mode 100644 test/files/run/macro-expand-tparams-prefix-a/Impls_1.scala delete mode 100644 test/files/run/macro-expand-tparams-prefix-a/Macros_Test_2.scala delete mode 100644 test/files/run/macro-expand-tparams-prefix-b.check delete mode 100644 test/files/run/macro-expand-tparams-prefix-b.flags delete mode 100644 test/files/run/macro-expand-tparams-prefix-b/Impls_1.scala delete mode 100644 test/files/run/macro-expand-tparams-prefix-b/Macros_Test_2.scala delete mode 100644 test/files/run/macro-expand-tparams-prefix-c1.check delete mode 100644 test/files/run/macro-expand-tparams-prefix-c1.flags delete mode 100644 test/files/run/macro-expand-tparams-prefix-c1/Impls_1.scala delete mode 100644 test/files/run/macro-expand-tparams-prefix-c1/Macros_Test_2.scala delete mode 100644 test/files/run/macro-expand-tparams-prefix-c2.check delete mode 100644 test/files/run/macro-expand-tparams-prefix-c2.flags delete mode 100644 test/files/run/macro-expand-tparams-prefix-c2/Impls_Macros_1.scala delete mode 100644 test/files/run/macro-expand-tparams-prefix-c2/Test_2.scala delete mode 100644 test/files/run/macro-expand-tparams-prefix-d1.check delete mode 100644 test/files/run/macro-expand-tparams-prefix-d1.flags delete mode 100644 test/files/run/macro-expand-tparams-prefix-d1/Impls_1.scala delete mode 100644 test/files/run/macro-expand-tparams-prefix-d1/Macros_Test_2.scala create mode 100644 test/files/run/macro-expand-tparams-prefix.check create mode 100644 test/files/run/macro-expand-tparams-prefix.flags create mode 100644 test/files/run/macro-expand-tparams-prefix/Impls_1.scala create mode 100644 test/files/run/macro-expand-tparams-prefix/Macros_Test_2.scala create mode 100644 test/files/run/macro-impl-tparam-only-in-impl.flags create mode 100644 test/files/run/macro-impl-tparam-only-in-impl/Impls_1.scala create mode 100644 test/files/run/macro-impl-tparam-only-in-impl/Macros_Test_2.scala create mode 100644 test/files/run/macro-impl-tparam-typetag-is-optional.check create mode 100644 test/files/run/macro-impl-tparam-typetag-is-optional.flags create mode 100644 test/files/run/macro-impl-tparam-typetag-is-optional/Impls_1.scala create mode 100644 test/files/run/macro-impl-tparam-typetag-is-optional/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-annotation.check create mode 100644 test/files/run/macro-term-declared-in-annotation.flags create mode 100644 test/files/run/macro-term-declared-in-annotation/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-annotation/Macros_2.scala create mode 100644 test/files/run/macro-term-declared-in-annotation/Test_3.scala create mode 100644 test/files/run/macro-term-declared-in-anonymous.check create mode 100644 test/files/run/macro-term-declared-in-anonymous.flags create mode 100644 test/files/run/macro-term-declared-in-anonymous/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-anonymous/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-block.check create mode 100644 test/files/run/macro-term-declared-in-block.flags create mode 100644 test/files/run/macro-term-declared-in-block/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-block/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-class-class.check create mode 100644 test/files/run/macro-term-declared-in-class-class.flags create mode 100644 test/files/run/macro-term-declared-in-class-class/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-class-class/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-class-object.check create mode 100644 test/files/run/macro-term-declared-in-class-object.flags create mode 100644 test/files/run/macro-term-declared-in-class-object/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-class-object/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-class.check create mode 100644 test/files/run/macro-term-declared-in-class.flags create mode 100644 test/files/run/macro-term-declared-in-class/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-class/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-default-param.check create mode 100644 test/files/run/macro-term-declared-in-default-param.flags create mode 100644 test/files/run/macro-term-declared-in-default-param/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-default-param/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-implicit-class.check create mode 100644 test/files/run/macro-term-declared-in-implicit-class.flags create mode 100644 test/files/run/macro-term-declared-in-implicit-class/Impls_Macros_1.scala create mode 100644 test/files/run/macro-term-declared-in-implicit-class/Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-method.check create mode 100644 test/files/run/macro-term-declared-in-method.flags create mode 100644 test/files/run/macro-term-declared-in-method/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-method/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-object-class.check create mode 100644 test/files/run/macro-term-declared-in-object-class.flags create mode 100644 test/files/run/macro-term-declared-in-object-class/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-object-class/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-object-object.check create mode 100644 test/files/run/macro-term-declared-in-object-object.flags create mode 100644 test/files/run/macro-term-declared-in-object-object/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-object-object/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-object.check create mode 100644 test/files/run/macro-term-declared-in-object.flags create mode 100644 test/files/run/macro-term-declared-in-object/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-object/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-package-object.check create mode 100644 test/files/run/macro-term-declared-in-package-object.flags create mode 100644 test/files/run/macro-term-declared-in-package-object/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-package-object/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-refinement.check create mode 100644 test/files/run/macro-term-declared-in-refinement.flags create mode 100644 test/files/run/macro-term-declared-in-refinement/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-refinement/Macros_Test_2.scala create mode 100644 test/files/run/macro-term-declared-in-trait.check create mode 100644 test/files/run/macro-term-declared-in-trait.flags create mode 100644 test/files/run/macro-term-declared-in-trait/Impls_1.scala create mode 100644 test/files/run/macro-term-declared-in-trait/Macros_Test_2.scala create mode 100644 test/files/run/repl-term-macros.check create mode 100644 test/files/run/repl-term-macros.scala create mode 100644 test/pending/run/macro-term-declared-in-anonymous-explicit-import.check create mode 100644 test/pending/run/macro-term-declared-in-anonymous-explicit-import/Impls_1.scala create mode 100644 test/pending/run/macro-term-declared-in-anonymous-explicit-import/Macros_Test_2.scala diff --git a/test/files/neg/macro-invalidimpl-a.check b/test/files/neg/macro-invalidimpl-a.check deleted file mode 100644 index 7f11f3b865..0000000000 --- a/test/files/neg/macro-invalidimpl-a.check +++ /dev/null @@ -1,4 +0,0 @@ -Macros_Test_2.scala:3: error: macro implementation must be in statically accessible object - def foo(x: Any) = macro impls.foo - ^ -one error found diff --git a/test/files/neg/macro-invalidimpl-a.flags b/test/files/neg/macro-invalidimpl-a.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidimpl-a.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-a/Impls_1.scala b/test/files/neg/macro-invalidimpl-a/Impls_1.scala deleted file mode 100644 index cfa1218038..0000000000 --- a/test/files/neg/macro-invalidimpl-a/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -class Impls { - def foo(c: Ctx)(x: c.Expr[Any]) = ??? -} diff --git a/test/files/neg/macro-invalidimpl-a/Macros_Test_2.scala b/test/files/neg/macro-invalidimpl-a/Macros_Test_2.scala deleted file mode 100644 index 2220ddae0c..0000000000 --- a/test/files/neg/macro-invalidimpl-a/Macros_Test_2.scala +++ /dev/null @@ -1,9 +0,0 @@ -object Macros { - val impls = new Impls - def foo(x: Any) = macro impls.foo -} - -object Test extends App { - import Macros._ - foo(42) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-b.check b/test/files/neg/macro-invalidimpl-b.check deleted file mode 100644 index 7f11f3b865..0000000000 --- a/test/files/neg/macro-invalidimpl-b.check +++ /dev/null @@ -1,4 +0,0 @@ -Macros_Test_2.scala:3: error: macro implementation must be in statically accessible object - def foo(x: Any) = macro impls.foo - ^ -one error found diff --git a/test/files/neg/macro-invalidimpl-b.flags b/test/files/neg/macro-invalidimpl-b.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidimpl-b.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-b/Impls_1.scala b/test/files/neg/macro-invalidimpl-b/Impls_1.scala deleted file mode 100644 index 4467021545..0000000000 --- a/test/files/neg/macro-invalidimpl-b/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(x: c.Expr[Any]) = ??? -} diff --git a/test/files/neg/macro-invalidimpl-b/Macros_Test_2.scala b/test/files/neg/macro-invalidimpl-b/Macros_Test_2.scala deleted file mode 100644 index 81e40837d2..0000000000 --- a/test/files/neg/macro-invalidimpl-b/Macros_Test_2.scala +++ /dev/null @@ -1,9 +0,0 @@ -object Macros { - val impls = Impls - def foo(x: Any) = macro impls.foo -} - -object Test extends App { - import Macros._ - foo(42) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-c.check b/test/files/neg/macro-invalidimpl-c.check deleted file mode 100644 index 9e0181c0a3..0000000000 --- a/test/files/neg/macro-invalidimpl-c.check +++ /dev/null @@ -1,4 +0,0 @@ -Impls_Macros_1.scala:8: error: macro implementation must be in statically accessible object - def foo(x: Any) = macro Impls.foo - ^ -one error found diff --git a/test/files/neg/macro-invalidimpl-c.flags b/test/files/neg/macro-invalidimpl-c.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidimpl-c.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-c/Impls_Macros_1.scala b/test/files/neg/macro-invalidimpl-c/Impls_Macros_1.scala deleted file mode 100644 index 67a0eb348b..0000000000 --- a/test/files/neg/macro-invalidimpl-c/Impls_Macros_1.scala +++ /dev/null @@ -1,9 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -class Macros { - object Impls { - def foo(c: Ctx)(x: c.Expr[Any]) = ??? - } - - def foo(x: Any) = macro Impls.foo -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-c/Test_2.scala b/test/files/neg/macro-invalidimpl-c/Test_2.scala deleted file mode 100644 index e75a8ba101..0000000000 --- a/test/files/neg/macro-invalidimpl-c/Test_2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test extends App { - new Macros().foo(42) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-d.check b/test/files/neg/macro-invalidimpl-d.check deleted file mode 100644 index 76a5ba9c8c..0000000000 --- a/test/files/neg/macro-invalidimpl-d.check +++ /dev/null @@ -1,4 +0,0 @@ -Macros_Test_2.scala:2: error: macro implementation must be in statically accessible object - def foo(x: Any) = macro Impls.foo - ^ -one error found diff --git a/test/files/neg/macro-invalidimpl-d.flags b/test/files/neg/macro-invalidimpl-d.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidimpl-d.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-d/Impls_1.scala b/test/files/neg/macro-invalidimpl-d/Impls_1.scala deleted file mode 100644 index e0819c938c..0000000000 --- a/test/files/neg/macro-invalidimpl-d/Impls_1.scala +++ /dev/null @@ -1,7 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -trait MacroHelpers { - object Impls { - def foo(c: Ctx)(x: c.Expr[Any]) = x - } -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-d/Macros_Test_2.scala b/test/files/neg/macro-invalidimpl-d/Macros_Test_2.scala deleted file mode 100644 index 067ab1ddec..0000000000 --- a/test/files/neg/macro-invalidimpl-d/Macros_Test_2.scala +++ /dev/null @@ -1,7 +0,0 @@ -class Macros extends MacroHelpers { - def foo(x: Any) = macro Impls.foo -} - -object Test extends App { - println(new Macros().foo(42)) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-e.check b/test/files/neg/macro-invalidimpl-e.check deleted file mode 100644 index e0910b2899..0000000000 --- a/test/files/neg/macro-invalidimpl-e.check +++ /dev/null @@ -1,13 +0,0 @@ -Macros_Test_2.scala:2: error: ambiguous reference to overloaded definition, -both method foo in object Impls of type (c: scala.reflect.macros.Context)(x: c.Expr[Any], y: c.Expr[Any])Nothing -and method foo in object Impls of type (c: scala.reflect.macros.Context)(x: c.Expr[Any])Nothing -match expected type ? - def foo(x: Any) = macro Impls.foo - ^ -Macros_Test_2.scala:3: error: ambiguous reference to overloaded definition, -both method foo in object Impls of type (c: scala.reflect.macros.Context)(x: c.Expr[Any], y: c.Expr[Any])Nothing -and method foo in object Impls of type (c: scala.reflect.macros.Context)(x: c.Expr[Any])Nothing -match expected type ? - def foo(x: Any, y: Any) = macro Impls.foo - ^ -two errors found diff --git a/test/files/neg/macro-invalidimpl-e.flags b/test/files/neg/macro-invalidimpl-e.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidimpl-e.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-e/Impls_1.scala b/test/files/neg/macro-invalidimpl-e/Impls_1.scala deleted file mode 100644 index fd40119c31..0000000000 --- a/test/files/neg/macro-invalidimpl-e/Impls_1.scala +++ /dev/null @@ -1,6 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(x: c.Expr[Any]) = ??? - def foo(c: Ctx)(x: c.Expr[Any], y: c.Expr[Any]) = ??? -} diff --git a/test/files/neg/macro-invalidimpl-e/Macros_Test_2.scala b/test/files/neg/macro-invalidimpl-e/Macros_Test_2.scala deleted file mode 100644 index 6edde08167..0000000000 --- a/test/files/neg/macro-invalidimpl-e/Macros_Test_2.scala +++ /dev/null @@ -1,9 +0,0 @@ -object Macros { - def foo(x: Any) = macro Impls.foo - def foo(x: Any, y: Any) = macro Impls.foo -} - -object Test extends App { - import Macros._ - foo(42) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-f.check b/test/files/neg/macro-invalidimpl-f.check deleted file mode 100644 index 4e5851f566..0000000000 --- a/test/files/neg/macro-invalidimpl-f.check +++ /dev/null @@ -1,7 +0,0 @@ -Macros_Test_2.scala:2: error: macro implementation has wrong shape: - required: (c: scala.reflect.macros.Context)(): c.Expr[Unit] - found : (c: scala.reflect.macros.Context): c.Expr[Unit] -number of parameter sections differ - def bar1() = macro Impls.fooNullary - ^ -one error found diff --git a/test/files/neg/macro-invalidimpl-f.flags b/test/files/neg/macro-invalidimpl-f.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidimpl-f.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-f/Impls_1.scala b/test/files/neg/macro-invalidimpl-f/Impls_1.scala deleted file mode 100644 index 0e4da86d22..0000000000 --- a/test/files/neg/macro-invalidimpl-f/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def fooNullary(c: Ctx) = { - import c.universe._ - val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works")))) - c.Expr[Unit](body) - } - - def fooEmpty(c: Ctx)() = fooNullary(c) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-f/Macros_Test_2.scala b/test/files/neg/macro-invalidimpl-f/Macros_Test_2.scala deleted file mode 100644 index 493edf1df8..0000000000 --- a/test/files/neg/macro-invalidimpl-f/Macros_Test_2.scala +++ /dev/null @@ -1,9 +0,0 @@ -object Macros { - def bar1() = macro Impls.fooNullary -} - -object Test extends App { - Macros.bar1 - Macros.bar1() - println("kkthxbai") -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-g.check b/test/files/neg/macro-invalidimpl-g.check deleted file mode 100644 index 7342f7336f..0000000000 --- a/test/files/neg/macro-invalidimpl-g.check +++ /dev/null @@ -1,7 +0,0 @@ -Macros_Test_2.scala:2: error: macro implementation has wrong shape: - required: (c: scala.reflect.macros.Context): c.Expr[Unit] - found : (c: scala.reflect.macros.Context)(): c.Expr[Unit] -number of parameter sections differ - def foo1 = macro Impls.fooEmpty - ^ -one error found diff --git a/test/files/neg/macro-invalidimpl-g.flags b/test/files/neg/macro-invalidimpl-g.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidimpl-g.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-g/Impls_1.scala b/test/files/neg/macro-invalidimpl-g/Impls_1.scala deleted file mode 100644 index 0e4da86d22..0000000000 --- a/test/files/neg/macro-invalidimpl-g/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def fooNullary(c: Ctx) = { - import c.universe._ - val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works")))) - c.Expr[Unit](body) - } - - def fooEmpty(c: Ctx)() = fooNullary(c) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-g/Macros_Test_2.scala b/test/files/neg/macro-invalidimpl-g/Macros_Test_2.scala deleted file mode 100644 index 5561db9f9a..0000000000 --- a/test/files/neg/macro-invalidimpl-g/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo1 = macro Impls.fooEmpty -} - -object Test extends App { - Macros.foo1 - println("kkthxbai") -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-h.check b/test/files/neg/macro-invalidimpl-h.check deleted file mode 100644 index ea76e1aeac..0000000000 --- a/test/files/neg/macro-invalidimpl-h.check +++ /dev/null @@ -1,4 +0,0 @@ -Macros_Test_2.scala:2: error: type arguments [String] do not conform to method foo's type parameter bounds [U <: Int] - def foo = macro Impls.foo[String] - ^ -one error found diff --git a/test/files/neg/macro-invalidimpl-h.flags b/test/files/neg/macro-invalidimpl-h.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidimpl-h.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-h/Impls_1.scala b/test/files/neg/macro-invalidimpl-h/Impls_1.scala deleted file mode 100644 index 427fd3d5c0..0000000000 --- a/test/files/neg/macro-invalidimpl-h/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U <: Int](c: Ctx) = ??? -} diff --git a/test/files/neg/macro-invalidimpl-h/Macros_Test_2.scala b/test/files/neg/macro-invalidimpl-h/Macros_Test_2.scala deleted file mode 100644 index 218c7aec7f..0000000000 --- a/test/files/neg/macro-invalidimpl-h/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo = macro Impls.foo[String] -} - -object Test extends App { - import Macros._ - foo -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-i.check b/test/files/neg/macro-invalidimpl-i.check deleted file mode 100644 index 846ed8d134..0000000000 --- a/test/files/neg/macro-invalidimpl-i.check +++ /dev/null @@ -1,4 +0,0 @@ -Macros_Test_2.scala:4: error: macro implementation must be public - def foo = macro Impls.impl - ^ -one error found diff --git a/test/files/neg/macro-invalidimpl-i.flags b/test/files/neg/macro-invalidimpl-i.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidimpl-i.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-i/Impls_1.scala b/test/files/neg/macro-invalidimpl-i/Impls_1.scala deleted file mode 100644 index c35d8ab3c1..0000000000 --- a/test/files/neg/macro-invalidimpl-i/Impls_1.scala +++ /dev/null @@ -1,7 +0,0 @@ -package foo - -import scala.reflect.macros.Context - -object Impls { - private[foo] def impl(c: Context) = ??? -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl-i/Macros_Test_2.scala b/test/files/neg/macro-invalidimpl-i/Macros_Test_2.scala deleted file mode 100644 index fb129c70be..0000000000 --- a/test/files/neg/macro-invalidimpl-i/Macros_Test_2.scala +++ /dev/null @@ -1,5 +0,0 @@ -package foo - -object Test extends App { - def foo = macro Impls.impl -} diff --git a/test/files/neg/macro-invalidimpl.check b/test/files/neg/macro-invalidimpl.check new file mode 100644 index 0000000000..7177a8cdee --- /dev/null +++ b/test/files/neg/macro-invalidimpl.check @@ -0,0 +1,43 @@ +Macros_Test_2.scala:5: error: macro implementation must be in statically accessible object + def foo(x: Any) = macro impls.foo + ^ +Macros_Test_2.scala:10: error: macro implementation must be in statically accessible object + def foo(x: Any) = macro impls.foo + ^ +Macros_Test_2.scala:18: error: macro implementation must be in statically accessible object + def foo(x: Any) = macro Impls3.foo + ^ +Macros_Test_2.scala:22: error: macro implementation must be in statically accessible object + def foo(x: Any) = macro Impls4.foo + ^ +Macros_Test_2.scala:26: error: ambiguous reference to overloaded definition, +both method foo in object Impls5 of type (c: scala.reflect.macros.Context)(x: c.Expr[Any], y: c.Expr[Any])Nothing +and method foo in object Impls5 of type (c: scala.reflect.macros.Context)(x: c.Expr[Any])Nothing +match expected type ? + def foo(x: Any) = macro Impls5.foo + ^ +Macros_Test_2.scala:27: error: ambiguous reference to overloaded definition, +both method foo in object Impls5 of type (c: scala.reflect.macros.Context)(x: c.Expr[Any], y: c.Expr[Any])Nothing +and method foo in object Impls5 of type (c: scala.reflect.macros.Context)(x: c.Expr[Any])Nothing +match expected type ? + def foo(x: Any, y: Any) = macro Impls5.foo + ^ +Macros_Test_2.scala:31: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context): c.Expr[Unit] + found : (c: scala.reflect.macros.Context)(): c.Expr[Unit] +number of parameter sections differ + def foo1 = macro Impls6.fooEmpty + ^ +Macros_Test_2.scala:32: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context)(): c.Expr[Unit] + found : (c: scala.reflect.macros.Context): c.Expr[Unit] +number of parameter sections differ + def bar1() = macro Impls6.fooNullary + ^ +Macros_Test_2.scala:36: error: type arguments [String] do not conform to method foo's type parameter bounds [U <: Int] + def foo = macro Impls7.foo[String] + ^ +Macros_Test_2.scala:53: error: macro implementation must be public + def foo = macro Impls8.impl + ^ +10 errors found diff --git a/test/files/neg/macro-invalidimpl.flags b/test/files/neg/macro-invalidimpl.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/neg/macro-invalidimpl.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl/Impls_1.scala b/test/files/neg/macro-invalidimpl/Impls_1.scala new file mode 100644 index 0000000000..cf78ecc65a --- /dev/null +++ b/test/files/neg/macro-invalidimpl/Impls_1.scala @@ -0,0 +1,40 @@ +import scala.reflect.macros.Context + +class Impls1 { + def foo(c: Context)(x: c.Expr[Any]) = ??? +} + +object Impls2 { + def foo(c: Context)(x: c.Expr[Any]) = ??? +} + +trait MacroHelpers { + object Impls4 { + def foo(c: Context)(x: c.Expr[Any]) = x + } +} + +object Impls5 { + def foo(c: Context)(x: c.Expr[Any]) = ??? + def foo(c: Context)(x: c.Expr[Any], y: c.Expr[Any]) = ??? +} + +object Impls6 { + def fooNullary(c: Context) = { + import c.universe._ + val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works")))) + c.Expr[Unit](body) + } + + def fooEmpty(c: Context)() = fooNullary(c) +} + +object Impls7 { + def foo[U <: Int](c: Context) = ??? +} + +package foo { + object Impls8 { + private[foo] def impl(c: Context) = ??? + } +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidimpl/Macros_Test_2.scala b/test/files/neg/macro-invalidimpl/Macros_Test_2.scala new file mode 100644 index 0000000000..8aae9553f5 --- /dev/null +++ b/test/files/neg/macro-invalidimpl/Macros_Test_2.scala @@ -0,0 +1,55 @@ +import scala.reflect.macros.Context + +object Macros1 { + val impls = new Impls1 + def foo(x: Any) = macro impls.foo +} + +object Macros2 { + val impls = Impls2 + def foo(x: Any) = macro impls.foo +} + +class Macros3 { + object Impls3 { + def foo(c: Context)(x: c.Expr[Any]) = ??? + } + + def foo(x: Any) = macro Impls3.foo +} + +class Macros4 extends MacroHelpers { + def foo(x: Any) = macro Impls4.foo +} + +object Macros5 { + def foo(x: Any) = macro Impls5.foo + def foo(x: Any, y: Any) = macro Impls5.foo +} + +object Macros6 { + def foo1 = macro Impls6.fooEmpty + def bar1() = macro Impls6.fooNullary +} + +object Macros7 { + def foo = macro Impls7.foo[String] +} + +object Test extends App { + println(Macros1.foo(42)) + println(Macros2.foo(42)) + println(new Macros3().foo(42)) + println(new Macros4().foo(42)) + println(Macros5.foo(42)) + println(Macros6.foo1) + println(Macros6.bar1) + println(Macros6.bar1()) + println(Macros7.foo) +} + +package foo { + object Test extends App { + def foo = macro Impls8.impl + } +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidret-nontree.flags b/test/files/neg/macro-invalidret-nontree.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidret-nontree.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidret-nontree/Impls_1.scala b/test/files/neg/macro-invalidret-nontree/Impls_1.scala deleted file mode 100644 index ef19b1b405..0000000000 --- a/test/files/neg/macro-invalidret-nontree/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = 2 -} diff --git a/test/files/neg/macro-invalidret-nontree/Macros_Test_2.scala b/test/files/neg/macro-invalidret-nontree/Macros_Test_2.scala deleted file mode 100644 index 96a8de2832..0000000000 --- a/test/files/neg/macro-invalidret-nontree/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo = macro Impls.foo -} - -object Test extends App { - import Macros._ - foo -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidret-nonuniversetree.flags b/test/files/neg/macro-invalidret-nonuniversetree.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidret-nonuniversetree.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidret-nonuniversetree/Impls_1.scala b/test/files/neg/macro-invalidret-nonuniversetree/Impls_1.scala deleted file mode 100644 index f98376a2ba..0000000000 --- a/test/files/neg/macro-invalidret-nonuniversetree/Impls_1.scala +++ /dev/null @@ -1,6 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} -import scala.reflect.runtime.{universe => ru} - -object Impls { - def foo(c: Ctx) = ru.Literal(ru.Constant(42)) -} diff --git a/test/files/neg/macro-invalidret-nonuniversetree/Macros_Test_2.scala b/test/files/neg/macro-invalidret-nonuniversetree/Macros_Test_2.scala deleted file mode 100644 index 96a8de2832..0000000000 --- a/test/files/neg/macro-invalidret-nonuniversetree/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo = macro Impls.foo -} - -object Test extends App { - import Macros._ - foo -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidret.check b/test/files/neg/macro-invalidret.check new file mode 100644 index 0000000000..d6664e6882 --- /dev/null +++ b/test/files/neg/macro-invalidret.check @@ -0,0 +1,13 @@ +Macros_Test_2.scala:2: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context): c.Expr[Any] + found : (c: scala.reflect.macros.Context): Int +type mismatch for return type: Int does not conform to c.Expr[Any] + def foo1 = macro Impls.foo1 + ^ +Macros_Test_2.scala:3: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context): c.Expr[Any] + found : (c: scala.reflect.macros.Context): reflect.runtime.universe.Literal +type mismatch for return type: reflect.runtime.universe.Literal does not conform to c.Expr[Any] + def foo2 = macro Impls.foo2 + ^ +two errors found diff --git a/test/files/neg/macro-invalidret.flags b/test/files/neg/macro-invalidret.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/neg/macro-invalidret.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidret/Impls_1.scala b/test/files/neg/macro-invalidret/Impls_1.scala new file mode 100644 index 0000000000..a58af1a23c --- /dev/null +++ b/test/files/neg/macro-invalidret/Impls_1.scala @@ -0,0 +1,7 @@ +import scala.reflect.macros.Context +import scala.reflect.runtime.{universe => ru} + +object Impls { + def foo1(c: Context) = 2 + def foo2(c: Context) = ru.Literal(ru.Constant(42)) +} diff --git a/test/files/neg/macro-invalidret/Macros_Test_2.scala b/test/files/neg/macro-invalidret/Macros_Test_2.scala new file mode 100644 index 0000000000..f8880fa023 --- /dev/null +++ b/test/files/neg/macro-invalidret/Macros_Test_2.scala @@ -0,0 +1,10 @@ +object Macros { + def foo1 = macro Impls.foo1 + def foo2 = macro Impls.foo2 +} + +object Test extends App { + import Macros._ + foo1 + foo2 +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape-a.check b/test/files/neg/macro-invalidshape-a.check deleted file mode 100644 index f38a90819e..0000000000 --- a/test/files/neg/macro-invalidshape-a.check +++ /dev/null @@ -1,5 +0,0 @@ -Macros_Test_2.scala:2: error: macro body has wrong shape: - required: macro [].[[]] - def foo(x: Any) = macro 2 - ^ -one error found diff --git a/test/files/neg/macro-invalidshape-a.flags b/test/files/neg/macro-invalidshape-a.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidshape-a.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape-a/Impls_1.scala b/test/files/neg/macro-invalidshape-a/Impls_1.scala deleted file mode 100644 index 4467021545..0000000000 --- a/test/files/neg/macro-invalidshape-a/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(x: c.Expr[Any]) = ??? -} diff --git a/test/files/neg/macro-invalidshape-a/Macros_Test_2.scala b/test/files/neg/macro-invalidshape-a/Macros_Test_2.scala deleted file mode 100644 index ffff17d1e7..0000000000 --- a/test/files/neg/macro-invalidshape-a/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo(x: Any) = macro 2 -} - -object Test extends App { - import Macros._ - foo(42) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape-b.check b/test/files/neg/macro-invalidshape-b.check deleted file mode 100644 index 976685c6bd..0000000000 --- a/test/files/neg/macro-invalidshape-b.check +++ /dev/null @@ -1,5 +0,0 @@ -Macros_Test_2.scala:2: error: macro body has wrong shape: - required: macro [].[[]] - def foo(x: Any) = macro Impls.foo(null)(null) - ^ -one error found diff --git a/test/files/neg/macro-invalidshape-b.flags b/test/files/neg/macro-invalidshape-b.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidshape-b.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape-b/Impls_1.scala b/test/files/neg/macro-invalidshape-b/Impls_1.scala deleted file mode 100644 index 4467021545..0000000000 --- a/test/files/neg/macro-invalidshape-b/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(x: c.Expr[Any]) = ??? -} diff --git a/test/files/neg/macro-invalidshape-b/Macros_Test_2.scala b/test/files/neg/macro-invalidshape-b/Macros_Test_2.scala deleted file mode 100644 index b67cd32a6e..0000000000 --- a/test/files/neg/macro-invalidshape-b/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo(x: Any) = macro Impls.foo(null)(null) -} - -object Test extends App { - import Macros._ - foo(42) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape-c.check b/test/files/neg/macro-invalidshape-c.check deleted file mode 100644 index 0b2e9cfe4f..0000000000 --- a/test/files/neg/macro-invalidshape-c.check +++ /dev/null @@ -1,9 +0,0 @@ -Macros_Test_2.scala:2: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses - def foo(x: Any) = macro {2; Impls.foo} - ^ -Macros_Test_2.scala:2: error: missing arguments for method foo in object Impls; -follow this method with `_' if you want to treat it as a partially applied function - def foo(x: Any) = macro {2; Impls.foo} - ^ -one warning found -one error found diff --git a/test/files/neg/macro-invalidshape-c.flags b/test/files/neg/macro-invalidshape-c.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidshape-c.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape-c/Impls_1.scala b/test/files/neg/macro-invalidshape-c/Impls_1.scala deleted file mode 100644 index 4467021545..0000000000 --- a/test/files/neg/macro-invalidshape-c/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(x: c.Expr[Any]) = ??? -} diff --git a/test/files/neg/macro-invalidshape-c/Macros_Test_2.scala b/test/files/neg/macro-invalidshape-c/Macros_Test_2.scala deleted file mode 100644 index 552c3710c7..0000000000 --- a/test/files/neg/macro-invalidshape-c/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo(x: Any) = macro {2; Impls.foo} -} - -object Test extends App { - import Macros._ - foo(42) -} \ 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 e43a2ca0ab..0000000000 --- a/test/files/neg/macro-invalidshape-d.check +++ /dev/null @@ -1,8 +0,0 @@ -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 deleted file mode 100644 index 83b7265eb9..0000000000 --- a/test/files/neg/macro-invalidshape-d.flags +++ /dev/null @@ -1 +0,0 @@ --deprecation -language:experimental.macros 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 4467021545..0000000000 --- a/test/files/neg/macro-invalidshape-d/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{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-invalidshape.check b/test/files/neg/macro-invalidshape.check new file mode 100644 index 0000000000..cefc95b763 --- /dev/null +++ b/test/files/neg/macro-invalidshape.check @@ -0,0 +1,17 @@ +Macros_Test_2.scala:2: error: macro body has wrong shape: + required: macro [].[[]] + def foo1(x: Any) = macro 2 + ^ +Macros_Test_2.scala:3: error: macro body has wrong shape: + required: macro [].[[]] + def foo2(x: Any) = macro Impls.foo(null)(null) + ^ +Macros_Test_2.scala:4: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses + def foo3(x: Any) = macro {2; Impls.foo} + ^ +Macros_Test_2.scala:4: error: missing arguments for method foo in object Impls; +follow this method with `_' if you want to treat it as a partially applied function + def foo3(x: Any) = macro {2; Impls.foo} + ^ +one warning found +three errors found diff --git a/test/files/neg/macro-invalidshape.flags b/test/files/neg/macro-invalidshape.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/neg/macro-invalidshape.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidshape/Impls_1.scala b/test/files/neg/macro-invalidshape/Impls_1.scala new file mode 100644 index 0000000000..4467021545 --- /dev/null +++ b/test/files/neg/macro-invalidshape/Impls_1.scala @@ -0,0 +1,5 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx)(x: c.Expr[Any]) = ??? +} diff --git a/test/files/neg/macro-invalidshape/Macros_Test_2.scala b/test/files/neg/macro-invalidshape/Macros_Test_2.scala new file mode 100644 index 0000000000..f39ad20c5d --- /dev/null +++ b/test/files/neg/macro-invalidshape/Macros_Test_2.scala @@ -0,0 +1,12 @@ +object Macros { + def foo1(x: Any) = macro 2 + def foo2(x: Any) = macro Impls.foo(null)(null) + def foo3(x: Any) = macro {2; Impls.foo} +} + +object Test extends App { + import Macros._ + foo1(42) + foo2(42) + foo3(42) +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-context-bounds/Impls_1.scala b/test/files/neg/macro-invalidsig-context-bounds/Impls_1.scala deleted file mode 100644 index c066c485b1..0000000000 --- a/test/files/neg/macro-invalidsig-context-bounds/Impls_1.scala +++ /dev/null @@ -1,9 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U: c.WeakTypeTag: Numeric](c: Ctx) = { - import c.universe._ - Literal(Constant(42)) - } -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-context-bounds/Macros_Test_1.scala b/test/files/neg/macro-invalidsig-context-bounds/Macros_Test_1.scala deleted file mode 100644 index 5b4602f328..0000000000 --- a/test/files/neg/macro-invalidsig-context-bounds/Macros_Test_1.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo[U] = macro Impls.foo[U] -} - -object Test extends App { - import Macros._ - println(foo[String]) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-ctx-badargc/Impls_1.scala b/test/files/neg/macro-invalidsig-ctx-badargc/Impls_1.scala deleted file mode 100644 index 4d5d29158f..0000000000 --- a/test/files/neg/macro-invalidsig-ctx-badargc/Impls_1.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Impls { - def foo = ??? -} diff --git a/test/files/neg/macro-invalidsig-ctx-badargc/Macros_Test_2.scala b/test/files/neg/macro-invalidsig-ctx-badargc/Macros_Test_2.scala deleted file mode 100644 index 96a8de2832..0000000000 --- a/test/files/neg/macro-invalidsig-ctx-badargc/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo = macro Impls.foo -} - -object Test extends App { - import Macros._ - foo -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-ctx-badtype/Impls_1.scala b/test/files/neg/macro-invalidsig-ctx-badtype/Impls_1.scala deleted file mode 100644 index cf1a4cf85c..0000000000 --- a/test/files/neg/macro-invalidsig-ctx-badtype/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.api.{Universe => Ctx} - -object Impls { - def foo(c: Ctx) = ??? -} diff --git a/test/files/neg/macro-invalidsig-ctx-badtype/Macros_Test_2.scala b/test/files/neg/macro-invalidsig-ctx-badtype/Macros_Test_2.scala deleted file mode 100644 index 96a8de2832..0000000000 --- a/test/files/neg/macro-invalidsig-ctx-badtype/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo = macro Impls.foo -} - -object Test extends App { - import Macros._ - foo -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-ctx-badvarargs/Impls_1.scala b/test/files/neg/macro-invalidsig-ctx-badvarargs/Impls_1.scala deleted file mode 100644 index c4ed8be91e..0000000000 --- a/test/files/neg/macro-invalidsig-ctx-badvarargs/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(cs: Ctx*) = ??? -} diff --git a/test/files/neg/macro-invalidsig-ctx-badvarargs/Macros_Test_2.scala b/test/files/neg/macro-invalidsig-ctx-badvarargs/Macros_Test_2.scala deleted file mode 100644 index 96a8de2832..0000000000 --- a/test/files/neg/macro-invalidsig-ctx-badvarargs/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo = macro Impls.foo -} - -object Test extends App { - import Macros._ - foo -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-ctx-noctx/Impls_1.scala b/test/files/neg/macro-invalidsig-ctx-noctx/Impls_1.scala deleted file mode 100644 index 6904cfb1dc..0000000000 --- a/test/files/neg/macro-invalidsig-ctx-noctx/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = ??? -} diff --git a/test/files/neg/macro-invalidsig-ctx-noctx/Macros_Test_2.scala b/test/files/neg/macro-invalidsig-ctx-noctx/Macros_Test_2.scala deleted file mode 100644 index e053cf99df..0000000000 --- a/test/files/neg/macro-invalidsig-ctx-noctx/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo(x: Any) = macro Impls.foo -} - -object Test extends App { - import Macros._ - foo(42) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-implicit-params/Impls_Macros_1.scala b/test/files/neg/macro-invalidsig-implicit-params/Impls_Macros_1.scala deleted file mode 100644 index 8205694768..0000000000 --- a/test/files/neg/macro-invalidsig-implicit-params/Impls_Macros_1.scala +++ /dev/null @@ -1,19 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo_targs[T, U: c.WeakTypeTag](c: Ctx)(implicit x: c.Expr[Int]) = { - import c.{prefix => prefix} - import c.universe._ - val body = Block(List( - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("invoking foo_targs...")))), - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("type of prefix is: " + prefix.staticType)))), - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("U is: " + implicitly[c.WeakTypeTag[U]].tpe))))), - Literal(Constant(()))) - c.Expr[Unit](body) - } -} - -class Macros[T] { - def foo_targs[U](x: Int) = macro Impls.foo_targs[T, U] -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-implicit-params/Test_2.scala b/test/files/neg/macro-invalidsig-implicit-params/Test_2.scala deleted file mode 100644 index 90e850df21..0000000000 --- a/test/files/neg/macro-invalidsig-implicit-params/Test_2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - println("foo_targs:") - new Macros[Int]().foo_targs[String](42) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-params-badargc/Impls_Macros_1.scala b/test/files/neg/macro-invalidsig-params-badargc/Impls_Macros_1.scala deleted file mode 100644 index ae16612b93..0000000000 --- a/test/files/neg/macro-invalidsig-params-badargc/Impls_Macros_1.scala +++ /dev/null @@ -1,9 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(x: c.Expr[Int], y: c.Expr[Int]) = ??? -} - -object Macros { - def foo(x: Int) = macro Impls.foo -} diff --git a/test/files/neg/macro-invalidsig-params-badargc/Test_2.scala b/test/files/neg/macro-invalidsig-params-badargc/Test_2.scala deleted file mode 100644 index cbd6232073..0000000000 --- a/test/files/neg/macro-invalidsig-params-badargc/Test_2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - import Macros._ - foo(42) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-params-badtype/Test_2.scala b/test/files/neg/macro-invalidsig-params-badtype/Test_2.scala deleted file mode 100644 index cbd6232073..0000000000 --- a/test/files/neg/macro-invalidsig-params-badtype/Test_2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - import Macros._ - foo(42) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-params-badvarargs/Impls_Macros_1.scala b/test/files/neg/macro-invalidsig-params-badvarargs/Impls_Macros_1.scala deleted file mode 100644 index b4c75ad0ba..0000000000 --- a/test/files/neg/macro-invalidsig-params-badvarargs/Impls_Macros_1.scala +++ /dev/null @@ -1,9 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(xs: c.Expr[Int]*) = ??? -} - -object Macros { - def foo(x: Int, y: Int) = macro Impls.foo -} diff --git a/test/files/neg/macro-invalidsig-params-badvarargs/Test_2.scala b/test/files/neg/macro-invalidsig-params-badvarargs/Test_2.scala deleted file mode 100644 index fa50ac4f73..0000000000 --- a/test/files/neg/macro-invalidsig-params-badvarargs/Test_2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - import Macros._ - foo(42, 100) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-params-namemismatch/Impls_Macros_1.scala b/test/files/neg/macro-invalidsig-params-namemismatch/Impls_Macros_1.scala deleted file mode 100644 index c7cf0b06c4..0000000000 --- a/test/files/neg/macro-invalidsig-params-namemismatch/Impls_Macros_1.scala +++ /dev/null @@ -1,9 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(y: c.Expr[Int], x: c.Expr[Int]) = ??? -} - -object Macros { - def foo(x: Int, y: Int) = macro Impls.foo -} diff --git a/test/files/neg/macro-invalidsig-params-namemismatch/Test_2.scala b/test/files/neg/macro-invalidsig-params-namemismatch/Test_2.scala deleted file mode 100644 index fa50ac4f73..0000000000 --- a/test/files/neg/macro-invalidsig-params-namemismatch/Test_2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - import Macros._ - foo(42, 100) -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-tparams-badtype/Impls_1.scala b/test/files/neg/macro-invalidsig-tparams-badtype/Impls_1.scala deleted file mode 100644 index dbeca178a7..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-badtype/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U](c: Ctx)(U: c.universe.Type) = ??? -} diff --git a/test/files/neg/macro-invalidsig-tparams-badtype/Macros_Test_2.scala b/test/files/neg/macro-invalidsig-tparams-badtype/Macros_Test_2.scala deleted file mode 100644 index a82e813221..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-badtype/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo[U] = macro Impls.foo[U] -} - -object Test extends App { - import Macros._ - foo[Int] -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-tparams-bounds-a/Impls_1.scala b/test/files/neg/macro-invalidsig-tparams-bounds-a/Impls_1.scala deleted file mode 100644 index 89020de7dd..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-bounds-a/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U <: String](c: Ctx) = ??? -} diff --git a/test/files/neg/macro-invalidsig-tparams-bounds-a/Macros_Test_2.scala b/test/files/neg/macro-invalidsig-tparams-bounds-a/Macros_Test_2.scala deleted file mode 100644 index a82e813221..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-bounds-a/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo[U] = macro Impls.foo[U] -} - -object Test extends App { - import Macros._ - foo[Int] -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-tparams-bounds-b/Impls_1.scala b/test/files/neg/macro-invalidsig-tparams-bounds-b/Impls_1.scala deleted file mode 100644 index 89020de7dd..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-bounds-b/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U <: String](c: Ctx) = ??? -} diff --git a/test/files/neg/macro-invalidsig-tparams-bounds-b/Macros_Test_2.scala b/test/files/neg/macro-invalidsig-tparams-bounds-b/Macros_Test_2.scala deleted file mode 100644 index eed6369a16..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-bounds-b/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo[U <: Int] = macro Impls.foo[U] -} - -object Test extends App { - import Macros._ - foo[Int] -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-tparams-notparams-a/Impls_1.scala b/test/files/neg/macro-invalidsig-tparams-notparams-a/Impls_1.scala deleted file mode 100644 index f8b3c92869..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-notparams-a/Impls_1.scala +++ /dev/null @@ -1,6 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U: c.WeakTypeTag](c: Ctx) = ??? -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-tparams-notparams-a/Macros_Test_2.scala b/test/files/neg/macro-invalidsig-tparams-notparams-a/Macros_Test_2.scala deleted file mode 100644 index 96a8de2832..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-notparams-a/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo = macro Impls.foo -} - -object Test extends App { - import Macros._ - foo -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-tparams-notparams-b/Impls_1.scala b/test/files/neg/macro-invalidsig-tparams-notparams-b/Impls_1.scala deleted file mode 100644 index baf3aab9e3..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-notparams-b/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[T: c.WeakTypeTag, U: c.WeakTypeTag, V](c: Ctx)(implicit V: c.WeakTypeTag[V]): c.Expr[Unit] = { - println(implicitly[c.WeakTypeTag[T]]) - println(implicitly[c.WeakTypeTag[U]]) - println(V) - c.literalUnit - } -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-tparams-notparams-b/Macros_Test_2.scala b/test/files/neg/macro-invalidsig-tparams-notparams-b/Macros_Test_2.scala deleted file mode 100644 index 7d02bf613a..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-notparams-b/Macros_Test_2.scala +++ /dev/null @@ -1,11 +0,0 @@ -class D[T] { - class C[U] { - def foo[V] = macro Impls.foo - } -} - -object Test extends App { - val outer1 = new D[Int] - val outer2 = new outer1.C[String] - outer2.foo[Boolean] -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-tparams-notparams-c/Impls_1.scala b/test/files/neg/macro-invalidsig-tparams-notparams-c/Impls_1.scala deleted file mode 100644 index 44b4ed6ab3..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-notparams-c/Impls_1.scala +++ /dev/null @@ -1,12 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[T: c.WeakTypeTag, U: c.WeakTypeTag, V](c: Ctx)(implicit V: c.WeakTypeTag[V]): c.Expr[Unit] = { - import c.universe._ - println(implicitly[c.WeakTypeTag[T]]) - println(implicitly[c.WeakTypeTag[U]]) - println(V) - c.literalUnit - } -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig-tparams-notparams-c/Macros_Test_2.scala b/test/files/neg/macro-invalidsig-tparams-notparams-c/Macros_Test_2.scala deleted file mode 100644 index 109e142e52..0000000000 --- a/test/files/neg/macro-invalidsig-tparams-notparams-c/Macros_Test_2.scala +++ /dev/null @@ -1,11 +0,0 @@ -class D[T] { - class C[U] { - def foo[V] = macro Impls.foo[V] - } -} - -object Test extends App { - val outer1 = new D[Int] - val outer2 = new outer1.C[String] - outer2.foo[Boolean] -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig.check b/test/files/neg/macro-invalidsig.check new file mode 100644 index 0000000000..52074cf783 --- /dev/null +++ b/test/files/neg/macro-invalidsig.check @@ -0,0 +1,82 @@ +Macros_Test_2.scala:2: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context): c.Expr[Any] + found : (c: scala.reflect.macros.Context)(implicit evidence$2: Numeric[U]): c.universe.Literal +macro implementations cannot have implicit parameters other than WeakTypeTag evidences + def foo[U] = macro Impls1.foo[U] + ^ +Macros_Test_2.scala:6: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context): c.Expr[Any] + found : : Nothing +number of parameter sections differ + def foo = macro Impls2.foo + ^ +Macros_Test_2.scala:10: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context): c.Expr[Any] + found : (c: scala.reflect.api.Universe): Nothing +type mismatch for parameter c: scala.reflect.macros.Context does not conform to scala.reflect.api.Universe + def foo = macro Impls3.foo + ^ +Macros_Test_2.scala:14: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context): c.Expr[Any] + found : (cs: scala.reflect.macros.Context*): Nothing +types incompatible for parameter cs: corresponding is not a vararg parameter + def foo = macro Impls4.foo + ^ +Macros_Test_2.scala:18: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context)(x: c.Expr[Any]): c.Expr[Any] + found : (c: scala.reflect.macros.Context): Nothing +number of parameter sections differ + def foo(x: Any) = macro Impls5.foo + ^ +Macros_Test_2.scala:22: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context)(x: c.Expr[Int]): c.Expr[Unit] + found : (c: scala.reflect.macros.Context)(implicit x: c.Expr[Int]): c.Expr[Unit] +macro implementations cannot have implicit parameters other than WeakTypeTag evidences + def foo[U](x: Int) = macro Impls6.foo[T, U] + ^ +Macros_Test_2.scala:26: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context)(x: c.Expr[Int]): c.Expr[Any] + found : (c: scala.reflect.macros.Context)(x: c.Expr[Int], y: c.Expr[Int]): Nothing +parameter lists have different length, found extra parameter y: c.Expr[Int] + def foo(x: Int) = macro Impls7.foo + ^ +Macros_Test_2.scala:30: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context)(x: c.Expr[Int]): c.Expr[Any] + found : (c: scala.reflect.macros.Context)(x: c.universe.Symbol): Nothing +type mismatch for parameter x: c.Expr[Int] does not conform to c.universe.Symbol + def foo(x: Int) = macro Impls8.foo + ^ +Macros_Test_2.scala:34: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context)(x: c.Expr[Int], y: c.Expr[Int]): c.Expr[Any] + found : (c: scala.reflect.macros.Context)(xs: c.Expr[Int]*): Nothing +parameter lists have different length, required extra parameter y: c.Expr[Int] + def foo(x: Int, y: Int) = macro Impls9.foo + ^ +Macros_Test_2.scala:38: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context)(x: c.Expr[Int], y: c.Expr[Int]): c.Expr[Any] + found : (c: scala.reflect.macros.Context)(y: c.Expr[Int], x: c.Expr[Int]): Nothing +parameter names differ: x != y + def foo(x: Int, y: Int) = macro Impls10.foo + ^ +Macros_Test_2.scala:42: error: macro implementation has wrong shape: + required: (c: scala.reflect.macros.Context): c.Expr[Any] + found : (c: scala.reflect.macros.Context)(U: c.universe.Type): Nothing +number of parameter sections differ + def foo[U] = macro Impls11.foo[U] + ^ +Macros_Test_2.scala:46: error: type arguments [U] do not conform to method foo's type parameter bounds [U <: String] + def foo[U] = macro Impls12.foo[U] + ^ +Macros_Test_2.scala:50: error: type arguments [U] do not conform to method foo's type parameter bounds [U <: String] + def foo[U <: Int] = macro Impls13.foo[U] + ^ +Macros_Test_2.scala:54: error: wrong number of type parameters for method foo: [U](c: scala.reflect.macros.Context)(implicit evidence$4: c.WeakTypeTag[U])Nothing + def foo = macro Impls14.foo + ^ +Macros_Test_2.scala:59: error: wrong number of type parameters for method foo: [T, U, V](c: scala.reflect.macros.Context)(implicit evidence$5: c.WeakTypeTag[T], implicit evidence$6: c.WeakTypeTag[U], implicit V: c.WeakTypeTag[V])c.Expr[Unit] + def foo15[V] = macro Impls15.foo + ^ +Macros_Test_2.scala:60: error: wrong number of type parameters for method foo: [T, U, V](c: scala.reflect.macros.Context)(implicit evidence$7: c.WeakTypeTag[T], implicit evidence$8: c.WeakTypeTag[U], implicit V: c.WeakTypeTag[V])c.Expr[Unit] + def foo16[V] = macro Impls16.foo[V] + ^ +16 errors found diff --git a/test/files/neg/macro-invalidsig.flags b/test/files/neg/macro-invalidsig.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/neg/macro-invalidsig.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig/Impls_1.scala b/test/files/neg/macro-invalidsig/Impls_1.scala new file mode 100644 index 0000000000..e7d6c18f8d --- /dev/null +++ b/test/files/neg/macro-invalidsig/Impls_1.scala @@ -0,0 +1,88 @@ +import scala.reflect.runtime.universe._ +import scala.reflect.macros.Context + +object Impls1 { + def foo[U: c.WeakTypeTag: Numeric](c: Context) = { + import c.universe._ + Literal(Constant(42)) + } +} + +object Impls2 { + def foo = ??? +} + +object Impls3 { + def foo(c: scala.reflect.api.Universe) = ??? +} + +object Impls4 { + def foo(cs: Context*) = ??? +} + +object Impls5 { + def foo(c: Context) = ??? +} + +object Impls6 { + def foo[T, U: c.WeakTypeTag](c: Context)(implicit x: c.Expr[Int]) = { + import c.{prefix => prefix} + import c.universe._ + val body = Block(List( + Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("invoking foo_targs...")))), + Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("type of prefix is: " + prefix.staticType)))), + Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("U is: " + implicitly[c.WeakTypeTag[U]].tpe))))), + Literal(Constant(()))) + c.Expr[Unit](body) + } +} + +object Impls7 { + def foo(c: Context)(x: c.Expr[Int], y: c.Expr[Int]) = ??? +} + +object Impls8 { + def foo(c: Context)(x: c.universe.Symbol) = ??? +} + +object Impls9 { + def foo(c: Context)(xs: c.Expr[Int]*) = ??? +} + +object Impls10 { + def foo(c: Context)(y: c.Expr[Int], x: c.Expr[Int]) = ??? +} + +object Impls11 { + def foo[U](c: Context)(U: c.universe.Type) = ??? +} + +object Impls12 { + def foo[U <: String](c: Context) = ??? +} + +object Impls13 { + def foo[U <: String](c: Context) = ??? +} + +object Impls14 { + def foo[U: c.WeakTypeTag](c: Context) = ??? +} + +object Impls15 { + def foo[T: c.WeakTypeTag, U: c.WeakTypeTag, V](c: Context)(implicit V: c.WeakTypeTag[V]): c.Expr[Unit] = { + println(implicitly[c.WeakTypeTag[T]]) + println(implicitly[c.WeakTypeTag[U]]) + println(V) + c.literalUnit + } +} + +object Impls16 { + def foo[T: c.WeakTypeTag, U: c.WeakTypeTag, V](c: Context)(implicit V: c.WeakTypeTag[V]): c.Expr[Unit] = { + println(implicitly[c.WeakTypeTag[T]]) + println(implicitly[c.WeakTypeTag[U]]) + println(V) + c.literalUnit + } +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidsig/Macros_Test_2.scala b/test/files/neg/macro-invalidsig/Macros_Test_2.scala new file mode 100644 index 0000000000..0a6a321431 --- /dev/null +++ b/test/files/neg/macro-invalidsig/Macros_Test_2.scala @@ -0,0 +1,83 @@ +object Macros1 { + def foo[U] = macro Impls1.foo[U] +} + +object Macros2 { + def foo = macro Impls2.foo +} + +object Macros3 { + def foo = macro Impls3.foo +} + +object Macros4 { + def foo = macro Impls4.foo +} + +object Macros5 { + def foo(x: Any) = macro Impls5.foo +} + +class Macros6[T] { + def foo[U](x: Int) = macro Impls6.foo[T, U] +} + +object Macros7 { + def foo(x: Int) = macro Impls7.foo +} + +object Macros8 { + def foo(x: Int) = macro Impls8.foo +} + +object Macros9 { + def foo(x: Int, y: Int) = macro Impls9.foo +} + +object Macros10 { + def foo(x: Int, y: Int) = macro Impls10.foo +} + +object Macros11 { + def foo[U] = macro Impls11.foo[U] +} + +object Macros12 { + def foo[U] = macro Impls12.foo[U] +} + +object Macros13 { + def foo[U <: Int] = macro Impls13.foo[U] +} + +object Macros14 { + def foo = macro Impls14.foo +} + +class D[T] { + class C[U] { + def foo15[V] = macro Impls15.foo + def foo16[V] = macro Impls16.foo[V] + } +} + +object Test extends App { + println(Macros1.foo[String]) + println(Macros2.foo) + println(Macros3.foo) + println(Macros4.foo) + println(Macros5.foo(42)) + println(new Macros6[Int]().foo[String](42)) + println(Macros7.foo(42)) + println(Macros8.foo) + println(Macros9.foo(4, 2)) + println(Macros10.foo(4, 2)) + println(Macros11.foo[Int]) + println(Macros12.foo[Int]) + println(Macros13.foo[Int]) + println(Macros14.foo) + val outer1 = new D[Int] + val outer2 = new outer1.C[String] + outer2.foo15[Boolean] + outer2.foo16[Boolean] +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-badargs.check b/test/files/neg/macro-invalidusage-badargs.check index 294cfd0cf5..4c1115418b 100644 --- a/test/files/neg/macro-invalidusage-badargs.check +++ b/test/files/neg/macro-invalidusage-badargs.check @@ -1,6 +1,18 @@ -Macros_Test_2.scala:7: error: type mismatch; +Macros_Test_2.scala:5: error: type mismatch; found : String("42") required: Int - val s: String = foo("42") - ^ -one error found + foo("42") + ^ +Macros_Test_2.scala:6: error: too few argument lists for macro invocation + foo + ^ +Macros_Test_2.scala:7: error: Int does not take parameters + foo(4)(2) + ^ +Macros_Test_2.scala:8: error: macro applications do not support named and/or default arguments + foo() + ^ +Macros_Test_2.scala:9: error: too many arguments for macro method foo: (x: Int)Int + foo(4, 2) + ^ +5 errors found diff --git a/test/files/neg/macro-invalidusage-badargs/Macros_Test_2.scala b/test/files/neg/macro-invalidusage-badargs/Macros_Test_2.scala index a6af1bb277..0b3ca0590b 100644 --- a/test/files/neg/macro-invalidusage-badargs/Macros_Test_2.scala +++ b/test/files/neg/macro-invalidusage-badargs/Macros_Test_2.scala @@ -1,8 +1,10 @@ -object Macros { - def foo(x: Int) = macro Impls.foo -} +object Macros { def foo(x: Int) = macro Impls.foo } +import Macros._ object Test extends App { - import Macros._ - val s: String = foo("42") + foo("42") + foo + foo(4)(2) + foo() + foo(4, 2) } \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-badbounds-a.check b/test/files/neg/macro-invalidusage-badbounds-a.check deleted file mode 100644 index 277f407d38..0000000000 --- a/test/files/neg/macro-invalidusage-badbounds-a.check +++ /dev/null @@ -1,4 +0,0 @@ -Macros_Test_2.scala:7: error: type arguments [Int] do not conform to macro method foo's type parameter bounds [U <: String] - foo[Int] - ^ -one error found diff --git a/test/files/neg/macro-invalidusage-badbounds-a.flags b/test/files/neg/macro-invalidusage-badbounds-a.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/neg/macro-invalidusage-badbounds-a.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-badbounds-a/Impls_1.scala b/test/files/neg/macro-invalidusage-badbounds-a/Impls_1.scala deleted file mode 100644 index 6ee71a3628..0000000000 --- a/test/files/neg/macro-invalidusage-badbounds-a/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U <: String](c: Ctx) = c.literalUnit -} diff --git a/test/files/neg/macro-invalidusage-badbounds-a/Macros_Test_2.scala b/test/files/neg/macro-invalidusage-badbounds-a/Macros_Test_2.scala deleted file mode 100644 index 3139599108..0000000000 --- a/test/files/neg/macro-invalidusage-badbounds-a/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo[U <: String] = macro Impls.foo[U] -} - -object Test extends App { - import Macros._ - foo[Int] -} \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-badbounds.check b/test/files/neg/macro-invalidusage-badbounds.check new file mode 100644 index 0000000000..277f407d38 --- /dev/null +++ b/test/files/neg/macro-invalidusage-badbounds.check @@ -0,0 +1,4 @@ +Macros_Test_2.scala:7: error: type arguments [Int] do not conform to macro method foo's type parameter bounds [U <: String] + foo[Int] + ^ +one error found diff --git a/test/files/neg/macro-invalidusage-badbounds.flags b/test/files/neg/macro-invalidusage-badbounds.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/neg/macro-invalidusage-badbounds.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-badbounds/Impls_1.scala b/test/files/neg/macro-invalidusage-badbounds/Impls_1.scala new file mode 100644 index 0000000000..6ee71a3628 --- /dev/null +++ b/test/files/neg/macro-invalidusage-badbounds/Impls_1.scala @@ -0,0 +1,5 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo[U <: String](c: Ctx) = c.literalUnit +} diff --git a/test/files/neg/macro-invalidusage-badbounds/Macros_Test_2.scala b/test/files/neg/macro-invalidusage-badbounds/Macros_Test_2.scala new file mode 100644 index 0000000000..3139599108 --- /dev/null +++ b/test/files/neg/macro-invalidusage-badbounds/Macros_Test_2.scala @@ -0,0 +1,8 @@ +object Macros { + def foo[U <: String] = macro Impls.foo[U] +} + +object Test extends App { + import Macros._ + foo[Int] +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-badtargs-untyped.check b/test/files/neg/macro-invalidusage-badtargs-untyped.check new file mode 100644 index 0000000000..1678180281 --- /dev/null +++ b/test/files/neg/macro-invalidusage-badtargs-untyped.check @@ -0,0 +1,18 @@ +Macros_Test_2.scala:11: error: macro method foo1: (x: _)Int does not take type parameters. + foo1[String](42) + ^ +Macros_Test_2.scala:12: error: wrong number of type parameters for macro method foo2: [T](x: _)Int + foo2[String, String](42) + ^ +Macros_Test_2.scala:13: error: wrong number of type parameters for macro method foo3: [T, U](x: _)Int + foo3[String](42) + ^ +Macros_Test_2.scala:14: error: String takes no type parameters, expected: one + foo4[String](42) + ^ +Macros_Test_2.scala:15: error: kinds of the type arguments (List) do not conform to the expected kinds of the type parameters (type T). +List's type parameters do not match type T's expected parameters: +type A has no type parameters, but type U has one + foo5[List](42) + ^ +5 errors found diff --git a/test/files/neg/macro-invalidusage-badtargs-untyped.flags b/test/files/neg/macro-invalidusage-badtargs-untyped.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/neg/macro-invalidusage-badtargs-untyped.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-badtargs.check b/test/files/neg/macro-invalidusage-badtargs.check index 73801ab43e..6a9e1d6e6b 100644 --- a/test/files/neg/macro-invalidusage-badtargs.check +++ b/test/files/neg/macro-invalidusage-badtargs.check @@ -1,4 +1,18 @@ -Macros_Test_2.scala:7: error: macro method foo: (x: Int)Int does not take type parameters. - val s: String = foo[String](42) - ^ -one error found +Macros_Test_2.scala:11: error: macro method foo1: (x: Int)Int does not take type parameters. + foo1[String](42) + ^ +Macros_Test_2.scala:12: error: wrong number of type parameters for macro method foo2: [T](x: Int)Int + foo2[String, String](42) + ^ +Macros_Test_2.scala:13: error: wrong number of type parameters for macro method foo3: [T, U](x: Int)Int + foo3[String](42) + ^ +Macros_Test_2.scala:14: error: String takes no type parameters, expected: one + foo4[String](42) + ^ +Macros_Test_2.scala:15: error: kinds of the type arguments (List) do not conform to the expected kinds of the type parameters (type T). +List's type parameters do not match type T's expected parameters: +type A has no type parameters, but type U has one + foo5[List](42) + ^ +5 errors found diff --git a/test/files/neg/macro-invalidusage-badtargs/Macros_Test_2.scala b/test/files/neg/macro-invalidusage-badtargs/Macros_Test_2.scala index c54093b637..fd16d163c3 100644 --- a/test/files/neg/macro-invalidusage-badtargs/Macros_Test_2.scala +++ b/test/files/neg/macro-invalidusage-badtargs/Macros_Test_2.scala @@ -1,8 +1,16 @@ object Macros { - def foo(x: Int) = macro Impls.foo + def foo1(x: Int) = macro Impls.foo + def foo2[T](x: Int) = macro Impls.foo + def foo3[T, U](x: Int) = macro Impls.foo + def foo4[T[_]](x: Int) = macro Impls.foo + def foo5[T[U[_]]](x: Int) = macro Impls.foo } object Test extends App { import Macros._ - val s: String = foo[String](42) + foo1[String](42) + foo2[String, String](42) + foo3[String](42) + foo4[String](42) + foo5[List](42) } \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-nontypeable.check b/test/files/neg/macro-invalidusage-nontypeable.check new file mode 100644 index 0000000000..88e6057e5e --- /dev/null +++ b/test/files/neg/macro-invalidusage-nontypeable.check @@ -0,0 +1,4 @@ +Test_2.scala:2: error: not found: value IDoNotExist + Macros.foo + ^ +one error found diff --git a/test/files/neg/macro-invalidusage-nontypeable.flags b/test/files/neg/macro-invalidusage-nontypeable.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/neg/macro-invalidusage-nontypeable.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-nontypeable/Impls_Macros_1.scala b/test/files/neg/macro-invalidusage-nontypeable/Impls_Macros_1.scala new file mode 100644 index 0000000000..869a5a41fa --- /dev/null +++ b/test/files/neg/macro-invalidusage-nontypeable/Impls_Macros_1.scala @@ -0,0 +1,13 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.universe._ + val body = Ident(TermName("IDoNotExist")) + c.Expr[Int](body) + } +} + +object Macros { + def foo = macro Impls.foo +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-nontypeable/Test_2.scala b/test/files/neg/macro-invalidusage-nontypeable/Test_2.scala new file mode 100644 index 0000000000..acfddae942 --- /dev/null +++ b/test/files/neg/macro-invalidusage-nontypeable/Test_2.scala @@ -0,0 +1,3 @@ +object Test extends App { + Macros.foo +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-presuper.check b/test/files/neg/macro-invalidusage-presuper.check new file mode 100644 index 0000000000..f63a0eef80 --- /dev/null +++ b/test/files/neg/macro-invalidusage-presuper.check @@ -0,0 +1,4 @@ +Macros_Test_2.scala:3: error: only type definitions and concrete field definitions allowed in early object initialization section +class D extends { def x = macro impl } with AnyRef + ^ +one error found diff --git a/test/files/neg/macro-invalidusage-presuper.flags b/test/files/neg/macro-invalidusage-presuper.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/neg/macro-invalidusage-presuper.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-presuper/Impls_1.scala b/test/files/neg/macro-invalidusage-presuper/Impls_1.scala new file mode 100644 index 0000000000..b39a037c47 --- /dev/null +++ b/test/files/neg/macro-invalidusage-presuper/Impls_1.scala @@ -0,0 +1,5 @@ +import scala.reflect.macros.Context + +object Impls { + def impl(c: Context) = c.literalUnit +} \ No newline at end of file diff --git a/test/files/neg/macro-invalidusage-presuper/Macros_Test_2.scala b/test/files/neg/macro-invalidusage-presuper/Macros_Test_2.scala new file mode 100644 index 0000000000..ff46a5915f --- /dev/null +++ b/test/files/neg/macro-invalidusage-presuper/Macros_Test_2.scala @@ -0,0 +1,3 @@ +import Impls._ + +class D extends { def x = macro impl } with AnyRef \ No newline at end of file diff --git a/test/files/run/macro-declared-in-annotation.check b/test/files/run/macro-declared-in-annotation.check deleted file mode 100644 index 7658ad2c24..0000000000 --- a/test/files/run/macro-declared-in-annotation.check +++ /dev/null @@ -1 +0,0 @@ -it works diff --git a/test/files/run/macro-declared-in-annotation.flags b/test/files/run/macro-declared-in-annotation.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-annotation.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-annotation/Impls_1.scala b/test/files/run/macro-declared-in-annotation/Impls_1.scala deleted file mode 100644 index 1ea06de679..0000000000 --- a/test/files/run/macro-declared-in-annotation/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Literal(Constant("this is deprecated"))) - c.Expr[String](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-annotation/Macros_2.scala b/test/files/run/macro-declared-in-annotation/Macros_2.scala deleted file mode 100644 index 40d71c62fb..0000000000 --- a/test/files/run/macro-declared-in-annotation/Macros_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -class foo(val bar: String) extends annotation.StaticAnnotation - -object Api { - // foo in ann must have a different name - // otherwise, we get bitten by https://issues.scala-lang.org/browse/SI-5544 - @foo({def fooInAnn = macro Impls.foo; fooInAnn}) - def foo = println("it works") -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-annotation/Test_3.scala b/test/files/run/macro-declared-in-annotation/Test_3.scala deleted file mode 100644 index 866487f028..0000000000 --- a/test/files/run/macro-declared-in-annotation/Test_3.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test extends App { - Api.foo -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-anonymous.check b/test/files/run/macro-declared-in-anonymous.check deleted file mode 100644 index 09b8d015a6..0000000000 --- a/test/files/run/macro-declared-in-anonymous.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing](Test.this.macros) -it works diff --git a/test/files/run/macro-declared-in-anonymous.flags b/test/files/run/macro-declared-in-anonymous.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-anonymous.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-anonymous/Impls_1.scala b/test/files/run/macro-declared-in-anonymous/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-anonymous/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-anonymous/Macros_Test_2.scala b/test/files/run/macro-declared-in-anonymous/Macros_Test_2.scala deleted file mode 100644 index 88cd29ae4f..0000000000 --- a/test/files/run/macro-declared-in-anonymous/Macros_Test_2.scala +++ /dev/null @@ -1,6 +0,0 @@ -import scala.language.reflectiveCalls - -object Test extends App { - val macros = new { def foo = macro Impls.foo } - macros.foo -} diff --git a/test/files/run/macro-declared-in-block.check b/test/files/run/macro-declared-in-block.check deleted file mode 100644 index 5e687db8bf..0000000000 --- a/test/files/run/macro-declared-in-block.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing]() -it works diff --git a/test/files/run/macro-declared-in-block.flags b/test/files/run/macro-declared-in-block.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-block.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-block/Impls_1.scala b/test/files/run/macro-declared-in-block/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-block/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-block/Macros_Test_2.scala b/test/files/run/macro-declared-in-block/Macros_Test_2.scala deleted file mode 100644 index 69088e24bc..0000000000 --- a/test/files/run/macro-declared-in-block/Macros_Test_2.scala +++ /dev/null @@ -1,6 +0,0 @@ -object Test extends App { - { - def foo = macro Impls.foo - foo - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-class-class.check b/test/files/run/macro-declared-in-class-class.check deleted file mode 100644 index 47248d7af7..0000000000 --- a/test/files/run/macro-declared-in-class-class.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing](new Test.this.outer.Macros()) -it works diff --git a/test/files/run/macro-declared-in-class-class.flags b/test/files/run/macro-declared-in-class-class.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-class-class.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-class-class/Impls_1.scala b/test/files/run/macro-declared-in-class-class/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-class-class/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-class-class/Macros_Test_2.scala b/test/files/run/macro-declared-in-class-class/Macros_Test_2.scala deleted file mode 100644 index 871857a97f..0000000000 --- a/test/files/run/macro-declared-in-class-class/Macros_Test_2.scala +++ /dev/null @@ -1,10 +0,0 @@ -class Macros { - class Macros { - def foo = macro Impls.foo - } -} - -object Test extends App { - val outer = new Macros() - new outer.Macros().foo -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-class-object.check b/test/files/run/macro-declared-in-class-object.check deleted file mode 100644 index 35af59e40f..0000000000 --- a/test/files/run/macro-declared-in-class-object.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing](Test.this.outer.Macros) -it works diff --git a/test/files/run/macro-declared-in-class-object.flags b/test/files/run/macro-declared-in-class-object.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-class-object.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-class-object/Impls_1.scala b/test/files/run/macro-declared-in-class-object/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-class-object/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-class-object/Macros_Test_2.scala b/test/files/run/macro-declared-in-class-object/Macros_Test_2.scala deleted file mode 100644 index 994f9fe935..0000000000 --- a/test/files/run/macro-declared-in-class-object/Macros_Test_2.scala +++ /dev/null @@ -1,10 +0,0 @@ -class Macros { - object Macros { - def foo = macro Impls.foo - } -} - -object Test extends App { - val outer = new Macros() - outer.Macros.foo -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-class.check b/test/files/run/macro-declared-in-class.check deleted file mode 100644 index a1c1d7af8b..0000000000 --- a/test/files/run/macro-declared-in-class.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing](new Macros()) -it works diff --git a/test/files/run/macro-declared-in-class.flags b/test/files/run/macro-declared-in-class.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-class.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-class/Impls_1.scala b/test/files/run/macro-declared-in-class/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-class/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-class/Macros_Test_2.scala b/test/files/run/macro-declared-in-class/Macros_Test_2.scala deleted file mode 100644 index 1b9d13e775..0000000000 --- a/test/files/run/macro-declared-in-class/Macros_Test_2.scala +++ /dev/null @@ -1,7 +0,0 @@ -class Macros { - def foo = macro Impls.foo -} - -object Test extends App { - new Macros().foo -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-default-param.check b/test/files/run/macro-declared-in-default-param.check deleted file mode 100644 index 6decd7aa4d..0000000000 --- a/test/files/run/macro-declared-in-default-param.check +++ /dev/null @@ -1,5 +0,0 @@ -prefix = Expr[Nothing]() -it works -it works -prefix = Expr[Nothing]() -it works diff --git a/test/files/run/macro-declared-in-default-param.flags b/test/files/run/macro-declared-in-default-param.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-default-param.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-default-param/Impls_1.scala b/test/files/run/macro-declared-in-default-param/Impls_1.scala deleted file mode 100644 index 4380f40b04..0000000000 --- a/test/files/run/macro-declared-in-default-param/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Literal(Constant("it works"))) - c.Expr[String](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-default-param/Macros_Test_2.scala b/test/files/run/macro-declared-in-default-param/Macros_Test_2.scala deleted file mode 100644 index 356029e63e..0000000000 --- a/test/files/run/macro-declared-in-default-param/Macros_Test_2.scala +++ /dev/null @@ -1,7 +0,0 @@ -object Test extends App { - def foo(bar: String = { def foo = macro Impls.foo; foo }) = println(bar) - - foo() - foo("it works") - foo() -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-implicit-class.check b/test/files/run/macro-declared-in-implicit-class.check deleted file mode 100644 index 5dc968c08c..0000000000 --- a/test/files/run/macro-declared-in-implicit-class.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing](Macros.foo("2")) -Some(2) diff --git a/test/files/run/macro-declared-in-implicit-class.flags b/test/files/run/macro-declared-in-implicit-class.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-implicit-class.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-implicit-class/Impls_Macros_1.scala b/test/files/run/macro-declared-in-implicit-class/Impls_Macros_1.scala deleted file mode 100644 index 4c009cc367..0000000000 --- a/test/files/run/macro-declared-in-implicit-class/Impls_Macros_1.scala +++ /dev/null @@ -1,19 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def toOptionOfInt(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Ident(definitions.SomeModule), List(Select(Select(prefix.tree, TermName("x")), TermName("toInt"))))) - c.Expr[Option[Int]](body) - } -} - -object Macros { - implicit def foo(x: String): Foo = new Foo(x) - - class Foo(val x: String) { - def toOptionOfInt = macro Impls.toOptionOfInt - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-implicit-class/Test_2.scala b/test/files/run/macro-declared-in-implicit-class/Test_2.scala deleted file mode 100644 index d0bc9cc38c..0000000000 --- a/test/files/run/macro-declared-in-implicit-class/Test_2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - import Macros._ - println("2".toOptionOfInt) -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-method.check b/test/files/run/macro-declared-in-method.check deleted file mode 100644 index 5e687db8bf..0000000000 --- a/test/files/run/macro-declared-in-method.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing]() -it works diff --git a/test/files/run/macro-declared-in-method.flags b/test/files/run/macro-declared-in-method.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-method.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-method/Impls_1.scala b/test/files/run/macro-declared-in-method/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-method/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-method/Macros_Test_2.scala b/test/files/run/macro-declared-in-method/Macros_Test_2.scala deleted file mode 100644 index ed5c8b7c43..0000000000 --- a/test/files/run/macro-declared-in-method/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Test extends App { - def bar() = { - def foo = macro Impls.foo - foo - } - - bar() -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-object-class.check b/test/files/run/macro-declared-in-object-class.check deleted file mode 100644 index 47248d7af7..0000000000 --- a/test/files/run/macro-declared-in-object-class.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing](new Test.this.outer.Macros()) -it works diff --git a/test/files/run/macro-declared-in-object-class.flags b/test/files/run/macro-declared-in-object-class.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-object-class.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-object-class/Impls_1.scala b/test/files/run/macro-declared-in-object-class/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-object-class/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-object-class/Macros_Test_2.scala b/test/files/run/macro-declared-in-object-class/Macros_Test_2.scala deleted file mode 100644 index 204deed61c..0000000000 --- a/test/files/run/macro-declared-in-object-class/Macros_Test_2.scala +++ /dev/null @@ -1,10 +0,0 @@ -object Macros { - class Macros { - def foo = macro Impls.foo - } -} - -object Test extends App { - val outer = Macros - new outer.Macros().foo -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-object-object.check b/test/files/run/macro-declared-in-object-object.check deleted file mode 100644 index 35af59e40f..0000000000 --- a/test/files/run/macro-declared-in-object-object.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing](Test.this.outer.Macros) -it works diff --git a/test/files/run/macro-declared-in-object-object.flags b/test/files/run/macro-declared-in-object-object.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-object-object.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-object-object/Impls_1.scala b/test/files/run/macro-declared-in-object-object/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-object-object/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-object-object/Macros_Test_2.scala b/test/files/run/macro-declared-in-object-object/Macros_Test_2.scala deleted file mode 100644 index e261a50f3d..0000000000 --- a/test/files/run/macro-declared-in-object-object/Macros_Test_2.scala +++ /dev/null @@ -1,10 +0,0 @@ -object Macros { - object Macros { - def foo = macro Impls.foo - } -} - -object Test extends App { - val outer = Macros - outer.Macros.foo -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-object.check b/test/files/run/macro-declared-in-object.check deleted file mode 100644 index 4d955a96b1..0000000000 --- a/test/files/run/macro-declared-in-object.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing](Macros) -it works diff --git a/test/files/run/macro-declared-in-object.flags b/test/files/run/macro-declared-in-object.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-object.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-object/Impls_1.scala b/test/files/run/macro-declared-in-object/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-object/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-object/Macros_Test_2.scala b/test/files/run/macro-declared-in-object/Macros_Test_2.scala deleted file mode 100644 index a5a4862ba0..0000000000 --- a/test/files/run/macro-declared-in-object/Macros_Test_2.scala +++ /dev/null @@ -1,7 +0,0 @@ -object Macros { - def foo = macro Impls.foo -} - -object Test extends App { - Macros.foo -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-package-object.check b/test/files/run/macro-declared-in-package-object.check deleted file mode 100644 index bc0069178d..0000000000 --- a/test/files/run/macro-declared-in-package-object.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing](Macros.`package`) -it works diff --git a/test/files/run/macro-declared-in-package-object.flags b/test/files/run/macro-declared-in-package-object.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-package-object.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-package-object/Impls_1.scala b/test/files/run/macro-declared-in-package-object/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-package-object/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-package-object/Macros_Test_2.scala b/test/files/run/macro-declared-in-package-object/Macros_Test_2.scala deleted file mode 100644 index 54a5962e80..0000000000 --- a/test/files/run/macro-declared-in-package-object/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -package object Macros { - def foo = macro Impls.foo -} - -object Test extends App { - import Macros._ - foo -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-refinement.check b/test/files/run/macro-declared-in-refinement.check deleted file mode 100644 index 09b8d015a6..0000000000 --- a/test/files/run/macro-declared-in-refinement.check +++ /dev/null @@ -1,2 +0,0 @@ -prefix = Expr[Nothing](Test.this.macros) -it works diff --git a/test/files/run/macro-declared-in-refinement.flags b/test/files/run/macro-declared-in-refinement.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-refinement.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-refinement/Impls_1.scala b/test/files/run/macro-declared-in-refinement/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-refinement/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-refinement/Macros_Test_2.scala b/test/files/run/macro-declared-in-refinement/Macros_Test_2.scala deleted file mode 100644 index ff9a66d58a..0000000000 --- a/test/files/run/macro-declared-in-refinement/Macros_Test_2.scala +++ /dev/null @@ -1,9 +0,0 @@ - -import scala.language.reflectiveCalls - -class Base - -object Test extends App { - val macros = new Base { def foo = macro Impls.foo } - macros.foo -} diff --git a/test/files/run/macro-declared-in-trait.check b/test/files/run/macro-declared-in-trait.check deleted file mode 100644 index 0d70ac74f3..0000000000 --- a/test/files/run/macro-declared-in-trait.check +++ /dev/null @@ -1,15 +0,0 @@ -prefix = Expr[Nothing]({ - final class $anon extends AnyRef with Base { - def (): anonymous class $anon = { - $anon.super.(); - () - }; - - }; - new $anon() -}) -it works -prefix = Expr[Nothing](Macros) -it works -prefix = Expr[Nothing](new Macros()) -it works diff --git a/test/files/run/macro-declared-in-trait.flags b/test/files/run/macro-declared-in-trait.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-declared-in-trait.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-declared-in-trait/Impls_1.scala b/test/files/run/macro-declared-in-trait/Impls_1.scala deleted file mode 100644 index 348f3420f2..0000000000 --- a/test/files/run/macro-declared-in-trait/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx) = { - import c.{prefix => prefix} - import c.universe._ - val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) - val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-declared-in-trait/Macros_Test_2.scala b/test/files/run/macro-declared-in-trait/Macros_Test_2.scala deleted file mode 100644 index f75906b636..0000000000 --- a/test/files/run/macro-declared-in-trait/Macros_Test_2.scala +++ /dev/null @@ -1,13 +0,0 @@ -trait Base { - def foo = macro Impls.foo -} - -object Macros extends Base - -class Macros extends Base - -object Test extends App { - (new Base {}).foo - Macros.foo - new Macros().foo -} \ No newline at end of file diff --git a/test/files/run/macro-def-infer-return-type-a.check b/test/files/run/macro-def-infer-return-type-a.check deleted file mode 100644 index f70d7bba4a..0000000000 --- a/test/files/run/macro-def-infer-return-type-a.check +++ /dev/null @@ -1 +0,0 @@ -42 \ No newline at end of file diff --git a/test/files/run/macro-def-infer-return-type-a.flags b/test/files/run/macro-def-infer-return-type-a.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-def-infer-return-type-a.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-def-infer-return-type-a/Impls_1.scala b/test/files/run/macro-def-infer-return-type-a/Impls_1.scala deleted file mode 100644 index 52c9f9c3e9..0000000000 --- a/test/files/run/macro-def-infer-return-type-a/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo(c: Ctx)(x: c.Expr[Int]) = x -} diff --git a/test/files/run/macro-def-infer-return-type-a/Macros_Test_2.scala b/test/files/run/macro-def-infer-return-type-a/Macros_Test_2.scala deleted file mode 100644 index 60fe9dc1c2..0000000000 --- a/test/files/run/macro-def-infer-return-type-a/Macros_Test_2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - def foo(x: Int) = macro Impls.foo - println(foo(42)) -} \ No newline at end of file diff --git a/test/files/run/macro-def-infer-return-type-b.check b/test/files/run/macro-def-infer-return-type-b.check deleted file mode 100644 index ae2dc7a06f..0000000000 --- a/test/files/run/macro-def-infer-return-type-b.check +++ /dev/null @@ -1,6 +0,0 @@ -reflective compilation has failed: - -exception during macro expansion: -java.lang.Error: an implementation is missing - at Impls$.foo(Impls_Macros_1.scala:5) - diff --git a/test/files/run/macro-def-infer-return-type-b.flags b/test/files/run/macro-def-infer-return-type-b.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-def-infer-return-type-b.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-def-infer-return-type-b/Impls_Macros_1.scala b/test/files/run/macro-def-infer-return-type-b/Impls_Macros_1.scala deleted file mode 100644 index 8a0f18c01b..0000000000 --- a/test/files/run/macro-def-infer-return-type-b/Impls_Macros_1.scala +++ /dev/null @@ -1,10 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[T](c: Ctx)(x: c.Expr[T]) = - throw new Error("an implementation is missing") -} - -object Macros { - def foo[T](x: T) = macro Impls.foo[T] -} \ No newline at end of file diff --git a/test/files/run/macro-def-infer-return-type-b/Test_2.scala b/test/files/run/macro-def-infer-return-type-b/Test_2.scala deleted file mode 100644 index 9e57b90b57..0000000000 --- a/test/files/run/macro-def-infer-return-type-b/Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Test extends App { - import scala.reflect.runtime.universe._ - import scala.reflect.runtime.{currentMirror => cm} - import scala.tools.reflect.ToolBox - val tree = Apply(Select(Ident(TermName("Macros")), TermName("foo")), List(Literal(Constant(42)))) - try cm.mkToolBox().eval(tree) - catch { case ex: Throwable => println(ex.getMessage) } -} diff --git a/test/files/run/macro-def-infer-return-type-c.check b/test/files/run/macro-def-infer-return-type-c.check deleted file mode 100644 index f70d7bba4a..0000000000 --- a/test/files/run/macro-def-infer-return-type-c.check +++ /dev/null @@ -1 +0,0 @@ -42 \ No newline at end of file diff --git a/test/files/run/macro-def-infer-return-type-c.flags b/test/files/run/macro-def-infer-return-type-c.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-def-infer-return-type-c.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-def-infer-return-type-c/Impls_1.scala b/test/files/run/macro-def-infer-return-type-c/Impls_1.scala deleted file mode 100644 index 78db67eebf..0000000000 --- a/test/files/run/macro-def-infer-return-type-c/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[T](c: Ctx)(x: c.Expr[T]): c.Expr[T] = x -} diff --git a/test/files/run/macro-def-infer-return-type-c/Macros_Test_2.scala b/test/files/run/macro-def-infer-return-type-c/Macros_Test_2.scala deleted file mode 100644 index 967d16f6de..0000000000 --- a/test/files/run/macro-def-infer-return-type-c/Macros_Test_2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - def foo[T](x: T) = macro Impls.foo[T] - println(foo(42)) -} \ No newline at end of file diff --git a/test/files/run/macro-def-infer-return-type.check b/test/files/run/macro-def-infer-return-type.check new file mode 100644 index 0000000000..308e881960 --- /dev/null +++ b/test/files/run/macro-def-infer-return-type.check @@ -0,0 +1,8 @@ +42 +reflective compilation has failed: + +exception during macro expansion: +java.lang.Error: an implementation is missing + at Impls2$.foo(Impls_1.scala:9) + +42 diff --git a/test/files/run/macro-def-infer-return-type.flags b/test/files/run/macro-def-infer-return-type.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-def-infer-return-type.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-def-infer-return-type/Impls_1.scala b/test/files/run/macro-def-infer-return-type/Impls_1.scala new file mode 100644 index 0000000000..f8636fe725 --- /dev/null +++ b/test/files/run/macro-def-infer-return-type/Impls_1.scala @@ -0,0 +1,14 @@ +import scala.reflect.macros.Context + +object Impls1 { + def foo(c: Context)(x: c.Expr[Int]) = x +} + +object Impls2 { + def foo[T](c: Context)(x: c.Expr[T]) = + throw new Error("an implementation is missing") +} + +object Impls3 { + def foo[T](c: Context)(x: c.Expr[T]): c.Expr[T] = x +} diff --git a/test/files/run/macro-def-infer-return-type/Macros_Test_2.scala b/test/files/run/macro-def-infer-return-type/Macros_Test_2.scala new file mode 100644 index 0000000000..f579586b7f --- /dev/null +++ b/test/files/run/macro-def-infer-return-type/Macros_Test_2.scala @@ -0,0 +1,24 @@ +object Macros1 { + def foo(x: Int) = macro Impls1.foo +} + +object Macros2 { + def foo[T](x: T) = macro Impls2.foo[T] +} + +object Macros3 { + def foo[T](x: T) = macro Impls3.foo[T] +} + +object Test extends App { + println(Macros1.foo(42)) + + import scala.reflect.runtime.universe._ + import scala.reflect.runtime.{currentMirror => cm} + import scala.tools.reflect.ToolBox + val tree = Apply(Select(Ident(TermName("Macros2")), TermName("foo")), List(Literal(Constant(42)))) + try cm.mkToolBox().eval(tree) + catch { case ex: Throwable => println(ex.getMessage) } + + println(Macros3.foo(42)) +} diff --git a/test/files/run/macro-def-path-dependent-a.check b/test/files/run/macro-def-path-dependent-a.check deleted file mode 100644 index 7658ad2c24..0000000000 --- a/test/files/run/macro-def-path-dependent-a.check +++ /dev/null @@ -1 +0,0 @@ -it works diff --git a/test/files/run/macro-def-path-dependent-a.flags b/test/files/run/macro-def-path-dependent-a.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-def-path-dependent-a.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-a/Impls_Macros_1.scala b/test/files/run/macro-def-path-dependent-a/Impls_Macros_1.scala deleted file mode 100644 index 3a91e41ff9..0000000000 --- a/test/files/run/macro-def-path-dependent-a/Impls_Macros_1.scala +++ /dev/null @@ -1,21 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -trait Exprs { - self: Universe => - - class Expr[T] -} - -trait Reifiers { - self: Universe => - - type Expr[T] - - def reify[T](expr: T) = macro Impls.reify[T] -} - -trait Universe extends Exprs with Reifiers - -object Impls { - def reify[T](cc: Ctx{ type PrefixType = Reifiers })(expr: cc.Expr[T]): cc.Expr[cc.prefix.value.Expr[T]] = ??? -} diff --git a/test/files/run/macro-def-path-dependent-a/Test_2.scala b/test/files/run/macro-def-path-dependent-a/Test_2.scala deleted file mode 100644 index 7dffc5107d..0000000000 --- a/test/files/run/macro-def-path-dependent-a/Test_2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test extends App { - println("it works") -} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-b.check b/test/files/run/macro-def-path-dependent-b.check deleted file mode 100644 index 7658ad2c24..0000000000 --- a/test/files/run/macro-def-path-dependent-b.check +++ /dev/null @@ -1 +0,0 @@ -it works diff --git a/test/files/run/macro-def-path-dependent-b.flags b/test/files/run/macro-def-path-dependent-b.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-def-path-dependent-b.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-b/Impls_Macros_1.scala b/test/files/run/macro-def-path-dependent-b/Impls_Macros_1.scala deleted file mode 100644 index cf9f9ebd0e..0000000000 --- a/test/files/run/macro-def-path-dependent-b/Impls_Macros_1.scala +++ /dev/null @@ -1,20 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -trait Exprs { - self: Universe => - - class Expr[T] -} - -trait Reifiers { - self: Universe => - -} - -trait Universe extends Exprs with Reifiers { - def reify[T](expr: T) = macro Impls.reify[T] -} - -object Impls { - def reify[T](cc: Ctx{ type PrefixType = Universe })(expr: cc.Expr[T]): cc.Expr[cc.prefix.value.Expr[T]] = ??? -} diff --git a/test/files/run/macro-def-path-dependent-b/Test_2.scala b/test/files/run/macro-def-path-dependent-b/Test_2.scala deleted file mode 100644 index 7dffc5107d..0000000000 --- a/test/files/run/macro-def-path-dependent-b/Test_2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test extends App { - println("it works") -} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-c.check b/test/files/run/macro-def-path-dependent-c.check deleted file mode 100644 index 7658ad2c24..0000000000 --- a/test/files/run/macro-def-path-dependent-c.check +++ /dev/null @@ -1 +0,0 @@ -it works diff --git a/test/files/run/macro-def-path-dependent-c.flags b/test/files/run/macro-def-path-dependent-c.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-def-path-dependent-c.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-c/Impls_Macros_1.scala b/test/files/run/macro-def-path-dependent-c/Impls_Macros_1.scala deleted file mode 100644 index 6cb374d9ba..0000000000 --- a/test/files/run/macro-def-path-dependent-c/Impls_Macros_1.scala +++ /dev/null @@ -1,20 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -trait Exprs { - self: Universe => - - class Expr[T] -} - -trait Reifiers { - self: Universe => - -} - -trait Universe extends Exprs with Reifiers { - def reify[T](expr: T): Expr[T] = macro Impls.reify[T] -} - -object Impls { - def reify[T](cc: Ctx{ type PrefixType = Universe })(expr: cc.Expr[T]): cc.Expr[cc.prefix.value.Expr[T]] = ??? -} diff --git a/test/files/run/macro-def-path-dependent-c/Test_2.scala b/test/files/run/macro-def-path-dependent-c/Test_2.scala deleted file mode 100644 index 7dffc5107d..0000000000 --- a/test/files/run/macro-def-path-dependent-c/Test_2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test extends App { - println("it works") -} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-d1.check b/test/files/run/macro-def-path-dependent-d1.check deleted file mode 100644 index 7658ad2c24..0000000000 --- a/test/files/run/macro-def-path-dependent-d1.check +++ /dev/null @@ -1 +0,0 @@ -it works diff --git a/test/files/run/macro-def-path-dependent-d1.flags b/test/files/run/macro-def-path-dependent-d1.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-def-path-dependent-d1.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-d1/Impls_Macros_1.scala b/test/files/run/macro-def-path-dependent-d1/Impls_Macros_1.scala deleted file mode 100644 index 69d9708b2a..0000000000 --- a/test/files/run/macro-def-path-dependent-d1/Impls_Macros_1.scala +++ /dev/null @@ -1,9 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.Context -import scala.reflect.api.Universe - -object Test { - def materializeTypeTag[T](u: Universe)(e: T) = macro materializeTypeTag_impl[T] - - def materializeTypeTag_impl[T: c.WeakTypeTag](c: Context)(u: c.Expr[Universe])(e: c.Expr[T]): c.Expr[u.value.TypeTag[T]] = ??? -} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-d1/Test_2.scala b/test/files/run/macro-def-path-dependent-d1/Test_2.scala deleted file mode 100644 index 7dffc5107d..0000000000 --- a/test/files/run/macro-def-path-dependent-d1/Test_2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test extends App { - println("it works") -} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-d2.check b/test/files/run/macro-def-path-dependent-d2.check deleted file mode 100644 index 7658ad2c24..0000000000 --- a/test/files/run/macro-def-path-dependent-d2.check +++ /dev/null @@ -1 +0,0 @@ -it works diff --git a/test/files/run/macro-def-path-dependent-d2.flags b/test/files/run/macro-def-path-dependent-d2.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-def-path-dependent-d2.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-d2/Impls_1.scala b/test/files/run/macro-def-path-dependent-d2/Impls_1.scala deleted file mode 100644 index 7fa9c3579e..0000000000 --- a/test/files/run/macro-def-path-dependent-d2/Impls_1.scala +++ /dev/null @@ -1,7 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.Context -import scala.reflect.api.Universe - -object Impls { - def materializeTypeTag_impl[T: c.WeakTypeTag](c: Context)(u: c.Expr[Universe])(e: c.Expr[T]): c.Expr[u.value.TypeTag[T]] = ??? -} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-d2/Macros_2.scala b/test/files/run/macro-def-path-dependent-d2/Macros_2.scala deleted file mode 100644 index 65ce4d8bd2..0000000000 --- a/test/files/run/macro-def-path-dependent-d2/Macros_2.scala +++ /dev/null @@ -1,7 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.Context -import scala.reflect.api.Universe - -object Macros { - def materializeTypeTag[T](u: Universe)(e: T) = macro Impls.materializeTypeTag_impl[T] -} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent-d2/Test_3.scala b/test/files/run/macro-def-path-dependent-d2/Test_3.scala deleted file mode 100644 index 7dffc5107d..0000000000 --- a/test/files/run/macro-def-path-dependent-d2/Test_3.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test extends App { - println("it works") -} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent.check b/test/files/run/macro-def-path-dependent.check new file mode 100644 index 0000000000..7658ad2c24 --- /dev/null +++ b/test/files/run/macro-def-path-dependent.check @@ -0,0 +1 @@ +it works diff --git a/test/files/run/macro-def-path-dependent.flags b/test/files/run/macro-def-path-dependent.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-def-path-dependent.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent/Dummy.scala b/test/files/run/macro-def-path-dependent/Dummy.scala new file mode 100644 index 0000000000..7dffc5107d --- /dev/null +++ b/test/files/run/macro-def-path-dependent/Dummy.scala @@ -0,0 +1,3 @@ +object Test extends App { + println("it works") +} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent/Test_1.scala b/test/files/run/macro-def-path-dependent/Test_1.scala new file mode 100644 index 0000000000..06c15e16c9 --- /dev/null +++ b/test/files/run/macro-def-path-dependent/Test_1.scala @@ -0,0 +1,23 @@ +package test1 + +import scala.reflect.macros.{Context => Ctx} + +trait Exprs { + self: Universe => + + class Expr[T] +} + +trait Reifiers { + self: Universe => + + type Expr[T] + + def reify[T](expr: T) = macro Impls.reify[T] +} + +trait Universe extends Exprs with Reifiers + +object Impls { + def reify[T](cc: Ctx{ type PrefixType = Reifiers })(expr: cc.Expr[T]): cc.Expr[cc.prefix.value.Expr[T]] = ??? +} diff --git a/test/files/run/macro-def-path-dependent/Test_2.scala b/test/files/run/macro-def-path-dependent/Test_2.scala new file mode 100644 index 0000000000..f1e9909981 --- /dev/null +++ b/test/files/run/macro-def-path-dependent/Test_2.scala @@ -0,0 +1,22 @@ +package test2 + +import scala.reflect.macros.{Context => Ctx} + +trait Exprs { + self: Universe => + + class Expr[T] +} + +trait Reifiers { + self: Universe => + +} + +trait Universe extends Exprs with Reifiers { + def reify[T](expr: T) = macro Impls.reify[T] +} + +object Impls { + def reify[T](cc: Ctx{ type PrefixType = Universe })(expr: cc.Expr[T]): cc.Expr[cc.prefix.value.Expr[T]] = ??? +} diff --git a/test/files/run/macro-def-path-dependent/Test_3.scala b/test/files/run/macro-def-path-dependent/Test_3.scala new file mode 100644 index 0000000000..9f5efe5e47 --- /dev/null +++ b/test/files/run/macro-def-path-dependent/Test_3.scala @@ -0,0 +1,22 @@ +package test3 + +import scala.reflect.macros.{Context => Ctx} + +trait Exprs { + self: Universe => + + class Expr[T] +} + +trait Reifiers { + self: Universe => + +} + +trait Universe extends Exprs with Reifiers { + def reify[T](expr: T): Expr[T] = macro Impls.reify[T] +} + +object Impls { + def reify[T](cc: Ctx{ type PrefixType = Universe })(expr: cc.Expr[T]): cc.Expr[cc.prefix.value.Expr[T]] = ??? +} diff --git a/test/files/run/macro-def-path-dependent/Test_4.scala b/test/files/run/macro-def-path-dependent/Test_4.scala new file mode 100644 index 0000000000..3af920d739 --- /dev/null +++ b/test/files/run/macro-def-path-dependent/Test_4.scala @@ -0,0 +1,11 @@ +package test4 + +import scala.reflect.runtime.universe._ +import scala.reflect.macros.Context +import scala.reflect.api.Universe + +object Test { + def materializeTypeTag[T](u: Universe)(e: T) = macro materializeTypeTag_impl[T] + + def materializeTypeTag_impl[T: c.WeakTypeTag](c: Context)(u: c.Expr[Universe])(e: c.Expr[T]): c.Expr[u.value.TypeTag[T]] = ??? +} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent/Test_5.scala b/test/files/run/macro-def-path-dependent/Test_5.scala new file mode 100644 index 0000000000..bc32fb92de --- /dev/null +++ b/test/files/run/macro-def-path-dependent/Test_5.scala @@ -0,0 +1,9 @@ +package test56 + +import scala.reflect.runtime.universe._ +import scala.reflect.macros.Context +import scala.reflect.api.Universe + +object Impls { + def materializeTypeTag_impl[T: c.WeakTypeTag](c: Context)(u: c.Expr[Universe])(e: c.Expr[T]): c.Expr[u.value.TypeTag[T]] = ??? +} \ No newline at end of file diff --git a/test/files/run/macro-def-path-dependent/Test_6.scala b/test/files/run/macro-def-path-dependent/Test_6.scala new file mode 100644 index 0000000000..6267743473 --- /dev/null +++ b/test/files/run/macro-def-path-dependent/Test_6.scala @@ -0,0 +1,9 @@ +package test56 + +import scala.reflect.runtime.universe._ +import scala.reflect.macros.Context +import scala.reflect.api.Universe + +object Macros { + def materializeTypeTag[T](u: Universe)(e: T) = macro Impls.materializeTypeTag_impl[T] +} \ No newline at end of file diff --git a/test/files/run/macro-expand-nullary-generic.check b/test/files/run/macro-expand-nullary-generic.check index 42976f4baf..0470d239dc 100644 --- a/test/files/run/macro-expand-nullary-generic.check +++ b/test/files/run/macro-expand-nullary-generic.check @@ -1,6 +1,6 @@ -it works WeakTypeTag[Int] -it works WeakTypeTag[Int] -it works WeakTypeTag[Int] -it works WeakTypeTag[Int] -it works WeakTypeTag[Int] +fooNullary[Int] +fooEmpty[Int] +fooEmpty[Int] +barNullary[Int] +barEmpty[Int] kkthxbai diff --git a/test/files/run/macro-expand-nullary-generic/Impls_1.scala b/test/files/run/macro-expand-nullary-generic/Impls_1.scala index 39a9db0e14..5dfdd5c539 100644 --- a/test/files/run/macro-expand-nullary-generic/Impls_1.scala +++ b/test/files/run/macro-expand-nullary-generic/Impls_1.scala @@ -2,14 +2,14 @@ import scala.reflect.runtime.universe._ import scala.reflect.macros.{Context => Ctx} object Impls { - def impl[T: c.WeakTypeTag](c: Ctx) = { + def impl[T: c.WeakTypeTag](c: Ctx)(meth: String) = { import c.universe._ - val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works " + implicitly[c.WeakTypeTag[T]])))) + val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(s"$meth[${c.weakTypeOf[T]}]")))) c.Expr[Unit](body) } - def fooNullary[T: c.WeakTypeTag](c: Ctx) = impl[T](c) - def fooEmpty[T: c.WeakTypeTag](c: Ctx)() = impl[T](c) - def barNullary[T: c.WeakTypeTag](c: Ctx)(x: c.Expr[Int]) = impl[T](c) - def barEmpty[T: c.WeakTypeTag](c: Ctx)(x: c.Expr[Int])() = impl[T](c) + def fooNullary[T: c.WeakTypeTag](c: Ctx) = impl[T](c)("fooNullary") + def fooEmpty[T: c.WeakTypeTag](c: Ctx)() = impl[T](c)("fooEmpty") + def barNullary[T: c.WeakTypeTag](c: Ctx)(x: c.Expr[Int]) = impl[T](c)("barNullary") + def barEmpty[T: c.WeakTypeTag](c: Ctx)(x: c.Expr[Int])() = impl[T](c)("barEmpty") } \ No newline at end of file diff --git a/test/files/run/macro-expand-nullary-nongeneric.check b/test/files/run/macro-expand-nullary-nongeneric.check index 9ab5f3a2bc..cb7e766394 100644 --- a/test/files/run/macro-expand-nullary-nongeneric.check +++ b/test/files/run/macro-expand-nullary-nongeneric.check @@ -1,6 +1,6 @@ -it works -it works -it works -it works -it works +fooNullary +fooEmpty +fooEmpty +barNullary +barEmpty kkthxbai diff --git a/test/files/run/macro-expand-nullary-nongeneric/Impls_1.scala b/test/files/run/macro-expand-nullary-nongeneric/Impls_1.scala index 41e50acc86..d23c671c84 100644 --- a/test/files/run/macro-expand-nullary-nongeneric/Impls_1.scala +++ b/test/files/run/macro-expand-nullary-nongeneric/Impls_1.scala @@ -1,14 +1,15 @@ +import scala.reflect.runtime.universe._ import scala.reflect.macros.{Context => Ctx} object Impls { - def impl(c: Ctx) = { + def impl(c: Ctx)(meth: String) = { import c.universe._ - val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works")))) + val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(meth)))) c.Expr[Unit](body) } - def fooNullary(c: Ctx) = impl(c) - def fooEmpty(c: Ctx)() = impl(c) - def barNullary(c: Ctx)(x: c.Expr[Int]) = impl(c) - def barEmpty(c: Ctx)(x: c.Expr[Int])() = impl(c) + def fooNullary(c: Ctx) = impl(c)("fooNullary") + def fooEmpty(c: Ctx)() = impl(c)("fooEmpty") + def barNullary(c: Ctx)(x: c.Expr[Int]) = impl(c)("barNullary") + def barEmpty(c: Ctx)(x: c.Expr[Int])() = impl(c)("barEmpty") } \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-bounds-a.check b/test/files/run/macro-expand-tparams-bounds-a.check deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/test/files/run/macro-expand-tparams-bounds-a.flags b/test/files/run/macro-expand-tparams-bounds-a.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-expand-tparams-bounds-a.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-bounds-a/Impls_1.scala b/test/files/run/macro-expand-tparams-bounds-a/Impls_1.scala deleted file mode 100644 index 9b8dafaa97..0000000000 --- a/test/files/run/macro-expand-tparams-bounds-a/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U <: String](c: Ctx): c.Expr[Unit] = c.literalUnit -} diff --git a/test/files/run/macro-expand-tparams-bounds-a/Macros_Test_2.scala b/test/files/run/macro-expand-tparams-bounds-a/Macros_Test_2.scala deleted file mode 100644 index b498e6f65b..0000000000 --- a/test/files/run/macro-expand-tparams-bounds-a/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo[U <: String] = macro Impls.foo[U] -} - -object Test extends App { - import Macros._ - foo[String] -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-bounds-b.check b/test/files/run/macro-expand-tparams-bounds-b.check deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/test/files/run/macro-expand-tparams-bounds-b.flags b/test/files/run/macro-expand-tparams-bounds-b.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-expand-tparams-bounds-b.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-bounds-b/Impls_1.scala b/test/files/run/macro-expand-tparams-bounds-b/Impls_1.scala deleted file mode 100644 index c11c89151c..0000000000 --- a/test/files/run/macro-expand-tparams-bounds-b/Impls_1.scala +++ /dev/null @@ -1,7 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -class C - -object Impls { - def foo[U <: C](c: Ctx): c.Expr[Unit] = c.literalUnit -} diff --git a/test/files/run/macro-expand-tparams-bounds-b/Macros_Test_2.scala b/test/files/run/macro-expand-tparams-bounds-b/Macros_Test_2.scala deleted file mode 100644 index 1a261e9f73..0000000000 --- a/test/files/run/macro-expand-tparams-bounds-b/Macros_Test_2.scala +++ /dev/null @@ -1,10 +0,0 @@ -class D extends C - -object Macros { - def foo[T <: D] = macro Impls.foo[T] -} - -object Test extends App { - import Macros._ - foo[D] -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-bounds.check b/test/files/run/macro-expand-tparams-bounds.check new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/files/run/macro-expand-tparams-bounds.flags b/test/files/run/macro-expand-tparams-bounds.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-expand-tparams-bounds.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-bounds/Impls_1.scala b/test/files/run/macro-expand-tparams-bounds/Impls_1.scala new file mode 100644 index 0000000000..f9103aaf8f --- /dev/null +++ b/test/files/run/macro-expand-tparams-bounds/Impls_1.scala @@ -0,0 +1,12 @@ +import scala.reflect.macros.Context + +object Impls1 { + def foo[U <: String](c: Context): c.Expr[Unit] = c.literalUnit +} + +class C +class D extends C + +object Impls2 { + def foo[U <: C](c: Context): c.Expr[Unit] = c.literalUnit +} diff --git a/test/files/run/macro-expand-tparams-bounds/Macros_Test_2.scala b/test/files/run/macro-expand-tparams-bounds/Macros_Test_2.scala new file mode 100644 index 0000000000..37a4bcb2b9 --- /dev/null +++ b/test/files/run/macro-expand-tparams-bounds/Macros_Test_2.scala @@ -0,0 +1,12 @@ +object Macros1 { + def foo[U <: String] = macro Impls1.foo[U] +} + +object Macros2 { + def foo[T <: D] = macro Impls2.foo[T] +} + +object Test extends App { + Macros1.foo[String] + Macros2.foo[D] +} diff --git a/test/files/run/macro-expand-tparams-only-in-impl.flags b/test/files/run/macro-expand-tparams-only-in-impl.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-expand-tparams-only-in-impl.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-only-in-impl/Impls_1.scala b/test/files/run/macro-expand-tparams-only-in-impl/Impls_1.scala deleted file mode 100644 index 9b8dafaa97..0000000000 --- a/test/files/run/macro-expand-tparams-only-in-impl/Impls_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U <: String](c: Ctx): c.Expr[Unit] = c.literalUnit -} diff --git a/test/files/run/macro-expand-tparams-only-in-impl/Macros_Test_2.scala b/test/files/run/macro-expand-tparams-only-in-impl/Macros_Test_2.scala deleted file mode 100644 index 218c7aec7f..0000000000 --- a/test/files/run/macro-expand-tparams-only-in-impl/Macros_Test_2.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Macros { - def foo = macro Impls.foo[String] -} - -object Test extends App { - import Macros._ - foo -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-optional.check b/test/files/run/macro-expand-tparams-optional.check deleted file mode 100644 index b4a0f394c1..0000000000 --- a/test/files/run/macro-expand-tparams-optional.check +++ /dev/null @@ -1 +0,0 @@ -don't know U diff --git a/test/files/run/macro-expand-tparams-optional.flags b/test/files/run/macro-expand-tparams-optional.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-expand-tparams-optional.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-optional/Impls_1.scala b/test/files/run/macro-expand-tparams-optional/Impls_1.scala deleted file mode 100644 index ace7a6cd26..0000000000 --- a/test/files/run/macro-expand-tparams-optional/Impls_1.scala +++ /dev/null @@ -1,9 +0,0 @@ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U](c: Ctx) = { - import c.universe._ - val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("don't know U")))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-optional/Macros_Test_2.scala b/test/files/run/macro-expand-tparams-optional/Macros_Test_2.scala deleted file mode 100644 index e72c27881a..0000000000 --- a/test/files/run/macro-expand-tparams-optional/Macros_Test_2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - def foo[U] = macro Impls.foo[U] - foo[Int] -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-a.check b/test/files/run/macro-expand-tparams-prefix-a.check deleted file mode 100644 index ca44a4f652..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-a.check +++ /dev/null @@ -1,4 +0,0 @@ -WeakTypeTag[Int] -WeakTypeTag[Int] -WeakTypeTag[String] -WeakTypeTag[Boolean] diff --git a/test/files/run/macro-expand-tparams-prefix-a.flags b/test/files/run/macro-expand-tparams-prefix-a.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-a.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-a/Impls_1.scala b/test/files/run/macro-expand-tparams-prefix-a/Impls_1.scala deleted file mode 100644 index c729aada51..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-a/Impls_1.scala +++ /dev/null @@ -1,11 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[U: c.WeakTypeTag](c: Ctx)(x: c.Expr[U]) = { - import c.universe._ - val U = implicitly[c.WeakTypeTag[U]] - val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(U.toString)))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-a/Macros_Test_2.scala b/test/files/run/macro-expand-tparams-prefix-a/Macros_Test_2.scala deleted file mode 100644 index 81ccb7ff42..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-a/Macros_Test_2.scala +++ /dev/null @@ -1,10 +0,0 @@ -object Test extends App { - class C[T] { - def foo[U](x: U) = macro Impls.foo[U] - } - - new C[Int]().foo(42) - new C[Boolean]().foo(42) - new C[Int]().foo("42") - new C[String]().foo(true) -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-b.check b/test/files/run/macro-expand-tparams-prefix-b.check deleted file mode 100644 index 2ff2ce435d..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-b.check +++ /dev/null @@ -1,2 +0,0 @@ -WeakTypeTag[Boolean] WeakTypeTag[Int] -WeakTypeTag[Boolean] WeakTypeTag[String] diff --git a/test/files/run/macro-expand-tparams-prefix-b.flags b/test/files/run/macro-expand-tparams-prefix-b.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-b.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-b/Impls_1.scala b/test/files/run/macro-expand-tparams-prefix-b/Impls_1.scala deleted file mode 100644 index 8880d13b04..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-b/Impls_1.scala +++ /dev/null @@ -1,12 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[T: c.WeakTypeTag, U: c.WeakTypeTag](c: Ctx)(x: c.Expr[U]) = { - import c.universe._ - val T = implicitly[c.WeakTypeTag[T]] - val U = implicitly[c.WeakTypeTag[U]] - val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(T.toString + " " + U.toString)))) - c.Expr[Unit](body) - } -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-b/Macros_Test_2.scala b/test/files/run/macro-expand-tparams-prefix-b/Macros_Test_2.scala deleted file mode 100644 index a4a0acfe8b..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-b/Macros_Test_2.scala +++ /dev/null @@ -1,10 +0,0 @@ -object Test extends App { - class C[T] { - def foo[U](x: U) = macro Impls.foo[T, U] - } - - object D extends C[Boolean] - - D.foo(42) - D.foo("42") -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-c1.check b/test/files/run/macro-expand-tparams-prefix-c1.check deleted file mode 100644 index 0f24f74db1..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-c1.check +++ /dev/null @@ -1,3 +0,0 @@ -WeakTypeTag[Int] -WeakTypeTag[String] -WeakTypeTag[Boolean] diff --git a/test/files/run/macro-expand-tparams-prefix-c1.flags b/test/files/run/macro-expand-tparams-prefix-c1.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-c1.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-c1/Impls_1.scala b/test/files/run/macro-expand-tparams-prefix-c1/Impls_1.scala deleted file mode 100644 index 2df42e969f..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-c1/Impls_1.scala +++ /dev/null @@ -1,13 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[T, U: c.WeakTypeTag, V](c: Ctx)(implicit T: c.WeakTypeTag[T], V: c.WeakTypeTag[V]): c.Expr[Unit] = { - import c.universe._ - c.Expr(Block(List( - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(T.toString)))), - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(implicitly[c.WeakTypeTag[U]].toString)))), - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(V.toString))))), - Literal(Constant(())))) - } -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-c1/Macros_Test_2.scala b/test/files/run/macro-expand-tparams-prefix-c1/Macros_Test_2.scala deleted file mode 100644 index 4fa0c8cb33..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-c1/Macros_Test_2.scala +++ /dev/null @@ -1,11 +0,0 @@ -class D[T] { - class C[U] { - def foo[V] = macro Impls.foo[T, U, V] - } -} - -object Test extends App { - val outer1 = new D[Int] - val outer2 = new outer1.C[String] - outer2.foo[Boolean] -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-c2.check b/test/files/run/macro-expand-tparams-prefix-c2.check deleted file mode 100644 index 0f24f74db1..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-c2.check +++ /dev/null @@ -1,3 +0,0 @@ -WeakTypeTag[Int] -WeakTypeTag[String] -WeakTypeTag[Boolean] diff --git a/test/files/run/macro-expand-tparams-prefix-c2.flags b/test/files/run/macro-expand-tparams-prefix-c2.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-c2.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-c2/Impls_Macros_1.scala b/test/files/run/macro-expand-tparams-prefix-c2/Impls_Macros_1.scala deleted file mode 100644 index 08817708d4..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-c2/Impls_Macros_1.scala +++ /dev/null @@ -1,19 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[T, U: c.WeakTypeTag, V](c: Ctx)(implicit T: c.WeakTypeTag[T], V: c.WeakTypeTag[V]): c.Expr[Unit] = { - import c.universe._ - c.Expr(Block(List( - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(T.toString)))), - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(implicitly[c.WeakTypeTag[U]].toString)))), - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(V.toString))))), - Literal(Constant(())))) - } -} - -class D[T] { - class C[U] { - def foo[V] = macro Impls.foo[T, U, V] - } -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-c2/Test_2.scala b/test/files/run/macro-expand-tparams-prefix-c2/Test_2.scala deleted file mode 100644 index e729d4a536..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-c2/Test_2.scala +++ /dev/null @@ -1,5 +0,0 @@ -object Test extends App { - val outer1 = new D[Int] - val outer2 = new outer1.C[String] - outer2.foo[Boolean] -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-d1.check b/test/files/run/macro-expand-tparams-prefix-d1.check deleted file mode 100644 index 7832503256..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-d1.check +++ /dev/null @@ -1,3 +0,0 @@ -WeakTypeTag[T] -WeakTypeTag[U] -WeakTypeTag[Boolean] diff --git a/test/files/run/macro-expand-tparams-prefix-d1.flags b/test/files/run/macro-expand-tparams-prefix-d1.flags deleted file mode 100644 index cd66464f2f..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-d1.flags +++ /dev/null @@ -1 +0,0 @@ --language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-d1/Impls_1.scala b/test/files/run/macro-expand-tparams-prefix-d1/Impls_1.scala deleted file mode 100644 index 2df42e969f..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-d1/Impls_1.scala +++ /dev/null @@ -1,13 +0,0 @@ -import scala.reflect.runtime.universe._ -import scala.reflect.macros.{Context => Ctx} - -object Impls { - def foo[T, U: c.WeakTypeTag, V](c: Ctx)(implicit T: c.WeakTypeTag[T], V: c.WeakTypeTag[V]): c.Expr[Unit] = { - import c.universe._ - c.Expr(Block(List( - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(T.toString)))), - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(implicitly[c.WeakTypeTag[U]].toString)))), - Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(V.toString))))), - Literal(Constant(())))) - } -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix-d1/Macros_Test_2.scala b/test/files/run/macro-expand-tparams-prefix-d1/Macros_Test_2.scala deleted file mode 100644 index 8222a6d1e8..0000000000 --- a/test/files/run/macro-expand-tparams-prefix-d1/Macros_Test_2.scala +++ /dev/null @@ -1,11 +0,0 @@ -object Test extends App { - class D[T] { - class C[U] { - def foo[V] = macro Impls.foo[T, U, V] - foo[Boolean] - } - } - - val outer1 = new D[Int] - new outer1.C[String] -} \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix.check b/test/files/run/macro-expand-tparams-prefix.check new file mode 100644 index 0000000000..7397958066 --- /dev/null +++ b/test/files/run/macro-expand-tparams-prefix.check @@ -0,0 +1,20 @@ +===Macros1=== +WeakTypeTag[Int] +WeakTypeTag[Int] +WeakTypeTag[String] +WeakTypeTag[Boolean] +===Macros2=== +WeakTypeTag[Boolean] WeakTypeTag[Int] +WeakTypeTag[Boolean] WeakTypeTag[String] +===Macros3=== +WeakTypeTag[Int] +WeakTypeTag[String] +WeakTypeTag[Boolean] +===Macros4=== +WeakTypeTag[Int] +WeakTypeTag[String] +WeakTypeTag[Boolean] +===Macros5=== +WeakTypeTag[T] +WeakTypeTag[U] +WeakTypeTag[Boolean] diff --git a/test/files/run/macro-expand-tparams-prefix.flags b/test/files/run/macro-expand-tparams-prefix.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-expand-tparams-prefix.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-expand-tparams-prefix/Impls_1.scala b/test/files/run/macro-expand-tparams-prefix/Impls_1.scala new file mode 100644 index 0000000000..e92396d1b4 --- /dev/null +++ b/test/files/run/macro-expand-tparams-prefix/Impls_1.scala @@ -0,0 +1,40 @@ +import scala.reflect.runtime.universe._ +import scala.reflect.macros.Context + +object Impls1 { + def foo[U: c.WeakTypeTag](c: Context)(x: c.Expr[U]) = { + import c.universe._ + val U = implicitly[c.WeakTypeTag[U]] + val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(U.toString)))) + c.Expr[Unit](body) + } +} + +object Impls2 { + def foo[T: c.WeakTypeTag, U: c.WeakTypeTag](c: Context)(x: c.Expr[U]) = { + import c.universe._ + val T = implicitly[c.WeakTypeTag[T]] + val U = implicitly[c.WeakTypeTag[U]] + val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(T.toString + " " + U.toString)))) + c.Expr[Unit](body) + } +} + +object Impls345 { + def foo[T, U: c.WeakTypeTag, V](c: Context)(implicit T: c.WeakTypeTag[T], V: c.WeakTypeTag[V]): c.Expr[Unit] = { + import c.universe._ + c.Expr(Block(List( + Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(T.toString)))), + Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(implicitly[c.WeakTypeTag[U]].toString)))), + Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(V.toString))))), + Literal(Constant(())))) + } +} + +object Macros4 { + class D[T] { + class C[U] { + def foo[V] = macro Impls345.foo[T, U, V] + } + } +} diff --git a/test/files/run/macro-expand-tparams-prefix/Macros_Test_2.scala b/test/files/run/macro-expand-tparams-prefix/Macros_Test_2.scala new file mode 100644 index 0000000000..2b1730d36e --- /dev/null +++ b/test/files/run/macro-expand-tparams-prefix/Macros_Test_2.scala @@ -0,0 +1,57 @@ +object Macros1 { + class C[T] { + def foo[U](x: U) = macro Impls1.foo[U] + } +} + +object Macros2 { + class C[T] { + def foo[U](x: U) = macro Impls2.foo[T, U] + } +} + +object Macros3 { + class D[T] { + class C[U] { + def foo[V] = macro Impls345.foo[T, U, V] + } + } +} + +// object Macros4 is declared in Impls_1.scala + +object Macros5 { + class D[T] { + class C[U] { + def foo[V] = macro Impls345.foo[T, U, V] + foo[Boolean] + } + } +} + +object Test extends App { + println("===Macros1===") + new Macros1.C[Int]().foo(42) + new Macros1.C[Boolean]().foo(42) + new Macros1.C[Int]().foo("42") + new Macros1.C[String]().foo(true) + + println("===Macros2===") + object D2 extends Macros2.C[Boolean] + D2.foo(42) + D2.foo("42") + + println("===Macros3===") + val outer31 = new Macros3.D[Int] + val outer32 = new outer31.C[String] + outer32.foo[Boolean] + + println("===Macros4===") + val outer41 = new Macros4.D[Int] + val outer42 = new outer41.C[String] + outer42.foo[Boolean] + + println("===Macros5===") + val outer1 = new Macros5.D[Int] + new outer1.C[String] +} \ No newline at end of file diff --git a/test/files/run/macro-impl-tparam-only-in-impl.flags b/test/files/run/macro-impl-tparam-only-in-impl.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-impl-tparam-only-in-impl.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-impl-tparam-only-in-impl/Impls_1.scala b/test/files/run/macro-impl-tparam-only-in-impl/Impls_1.scala new file mode 100644 index 0000000000..9b8dafaa97 --- /dev/null +++ b/test/files/run/macro-impl-tparam-only-in-impl/Impls_1.scala @@ -0,0 +1,5 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo[U <: String](c: Ctx): c.Expr[Unit] = c.literalUnit +} diff --git a/test/files/run/macro-impl-tparam-only-in-impl/Macros_Test_2.scala b/test/files/run/macro-impl-tparam-only-in-impl/Macros_Test_2.scala new file mode 100644 index 0000000000..218c7aec7f --- /dev/null +++ b/test/files/run/macro-impl-tparam-only-in-impl/Macros_Test_2.scala @@ -0,0 +1,8 @@ +object Macros { + def foo = macro Impls.foo[String] +} + +object Test extends App { + import Macros._ + foo +} \ No newline at end of file diff --git a/test/files/run/macro-impl-tparam-typetag-is-optional.check b/test/files/run/macro-impl-tparam-typetag-is-optional.check new file mode 100644 index 0000000000..b4a0f394c1 --- /dev/null +++ b/test/files/run/macro-impl-tparam-typetag-is-optional.check @@ -0,0 +1 @@ +don't know U diff --git a/test/files/run/macro-impl-tparam-typetag-is-optional.flags b/test/files/run/macro-impl-tparam-typetag-is-optional.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-impl-tparam-typetag-is-optional.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-impl-tparam-typetag-is-optional/Impls_1.scala b/test/files/run/macro-impl-tparam-typetag-is-optional/Impls_1.scala new file mode 100644 index 0000000000..ace7a6cd26 --- /dev/null +++ b/test/files/run/macro-impl-tparam-typetag-is-optional/Impls_1.scala @@ -0,0 +1,9 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo[U](c: Ctx) = { + import c.universe._ + val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("don't know U")))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-impl-tparam-typetag-is-optional/Macros_Test_2.scala b/test/files/run/macro-impl-tparam-typetag-is-optional/Macros_Test_2.scala new file mode 100644 index 0000000000..e72c27881a --- /dev/null +++ b/test/files/run/macro-impl-tparam-typetag-is-optional/Macros_Test_2.scala @@ -0,0 +1,4 @@ +object Test extends App { + def foo[U] = macro Impls.foo[U] + foo[Int] +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-annotation.check b/test/files/run/macro-term-declared-in-annotation.check new file mode 100644 index 0000000000..7658ad2c24 --- /dev/null +++ b/test/files/run/macro-term-declared-in-annotation.check @@ -0,0 +1 @@ +it works diff --git a/test/files/run/macro-term-declared-in-annotation.flags b/test/files/run/macro-term-declared-in-annotation.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-annotation.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-annotation/Impls_1.scala b/test/files/run/macro-term-declared-in-annotation/Impls_1.scala new file mode 100644 index 0000000000..1ea06de679 --- /dev/null +++ b/test/files/run/macro-term-declared-in-annotation/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Literal(Constant("this is deprecated"))) + c.Expr[String](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-annotation/Macros_2.scala b/test/files/run/macro-term-declared-in-annotation/Macros_2.scala new file mode 100644 index 0000000000..40d71c62fb --- /dev/null +++ b/test/files/run/macro-term-declared-in-annotation/Macros_2.scala @@ -0,0 +1,8 @@ +class foo(val bar: String) extends annotation.StaticAnnotation + +object Api { + // foo in ann must have a different name + // otherwise, we get bitten by https://issues.scala-lang.org/browse/SI-5544 + @foo({def fooInAnn = macro Impls.foo; fooInAnn}) + def foo = println("it works") +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-annotation/Test_3.scala b/test/files/run/macro-term-declared-in-annotation/Test_3.scala new file mode 100644 index 0000000000..866487f028 --- /dev/null +++ b/test/files/run/macro-term-declared-in-annotation/Test_3.scala @@ -0,0 +1,3 @@ +object Test extends App { + Api.foo +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-anonymous.check b/test/files/run/macro-term-declared-in-anonymous.check new file mode 100644 index 0000000000..09b8d015a6 --- /dev/null +++ b/test/files/run/macro-term-declared-in-anonymous.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing](Test.this.macros) +it works diff --git a/test/files/run/macro-term-declared-in-anonymous.flags b/test/files/run/macro-term-declared-in-anonymous.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-anonymous.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-anonymous/Impls_1.scala b/test/files/run/macro-term-declared-in-anonymous/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-anonymous/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-anonymous/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-anonymous/Macros_Test_2.scala new file mode 100644 index 0000000000..88cd29ae4f --- /dev/null +++ b/test/files/run/macro-term-declared-in-anonymous/Macros_Test_2.scala @@ -0,0 +1,6 @@ +import scala.language.reflectiveCalls + +object Test extends App { + val macros = new { def foo = macro Impls.foo } + macros.foo +} diff --git a/test/files/run/macro-term-declared-in-block.check b/test/files/run/macro-term-declared-in-block.check new file mode 100644 index 0000000000..5e687db8bf --- /dev/null +++ b/test/files/run/macro-term-declared-in-block.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing]() +it works diff --git a/test/files/run/macro-term-declared-in-block.flags b/test/files/run/macro-term-declared-in-block.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-block.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-block/Impls_1.scala b/test/files/run/macro-term-declared-in-block/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-block/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-block/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-block/Macros_Test_2.scala new file mode 100644 index 0000000000..69088e24bc --- /dev/null +++ b/test/files/run/macro-term-declared-in-block/Macros_Test_2.scala @@ -0,0 +1,6 @@ +object Test extends App { + { + def foo = macro Impls.foo + foo + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-class-class.check b/test/files/run/macro-term-declared-in-class-class.check new file mode 100644 index 0000000000..47248d7af7 --- /dev/null +++ b/test/files/run/macro-term-declared-in-class-class.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing](new Test.this.outer.Macros()) +it works diff --git a/test/files/run/macro-term-declared-in-class-class.flags b/test/files/run/macro-term-declared-in-class-class.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-class-class.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-class-class/Impls_1.scala b/test/files/run/macro-term-declared-in-class-class/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-class-class/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-class-class/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-class-class/Macros_Test_2.scala new file mode 100644 index 0000000000..871857a97f --- /dev/null +++ b/test/files/run/macro-term-declared-in-class-class/Macros_Test_2.scala @@ -0,0 +1,10 @@ +class Macros { + class Macros { + def foo = macro Impls.foo + } +} + +object Test extends App { + val outer = new Macros() + new outer.Macros().foo +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-class-object.check b/test/files/run/macro-term-declared-in-class-object.check new file mode 100644 index 0000000000..35af59e40f --- /dev/null +++ b/test/files/run/macro-term-declared-in-class-object.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing](Test.this.outer.Macros) +it works diff --git a/test/files/run/macro-term-declared-in-class-object.flags b/test/files/run/macro-term-declared-in-class-object.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-class-object.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-class-object/Impls_1.scala b/test/files/run/macro-term-declared-in-class-object/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-class-object/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-class-object/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-class-object/Macros_Test_2.scala new file mode 100644 index 0000000000..994f9fe935 --- /dev/null +++ b/test/files/run/macro-term-declared-in-class-object/Macros_Test_2.scala @@ -0,0 +1,10 @@ +class Macros { + object Macros { + def foo = macro Impls.foo + } +} + +object Test extends App { + val outer = new Macros() + outer.Macros.foo +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-class.check b/test/files/run/macro-term-declared-in-class.check new file mode 100644 index 0000000000..a1c1d7af8b --- /dev/null +++ b/test/files/run/macro-term-declared-in-class.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing](new Macros()) +it works diff --git a/test/files/run/macro-term-declared-in-class.flags b/test/files/run/macro-term-declared-in-class.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-class.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-class/Impls_1.scala b/test/files/run/macro-term-declared-in-class/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-class/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-class/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-class/Macros_Test_2.scala new file mode 100644 index 0000000000..1b9d13e775 --- /dev/null +++ b/test/files/run/macro-term-declared-in-class/Macros_Test_2.scala @@ -0,0 +1,7 @@ +class Macros { + def foo = macro Impls.foo +} + +object Test extends App { + new Macros().foo +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-default-param.check b/test/files/run/macro-term-declared-in-default-param.check new file mode 100644 index 0000000000..6decd7aa4d --- /dev/null +++ b/test/files/run/macro-term-declared-in-default-param.check @@ -0,0 +1,5 @@ +prefix = Expr[Nothing]() +it works +it works +prefix = Expr[Nothing]() +it works diff --git a/test/files/run/macro-term-declared-in-default-param.flags b/test/files/run/macro-term-declared-in-default-param.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-default-param.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-default-param/Impls_1.scala b/test/files/run/macro-term-declared-in-default-param/Impls_1.scala new file mode 100644 index 0000000000..4380f40b04 --- /dev/null +++ b/test/files/run/macro-term-declared-in-default-param/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Literal(Constant("it works"))) + c.Expr[String](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-default-param/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-default-param/Macros_Test_2.scala new file mode 100644 index 0000000000..356029e63e --- /dev/null +++ b/test/files/run/macro-term-declared-in-default-param/Macros_Test_2.scala @@ -0,0 +1,7 @@ +object Test extends App { + def foo(bar: String = { def foo = macro Impls.foo; foo }) = println(bar) + + foo() + foo("it works") + foo() +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-implicit-class.check b/test/files/run/macro-term-declared-in-implicit-class.check new file mode 100644 index 0000000000..5dc968c08c --- /dev/null +++ b/test/files/run/macro-term-declared-in-implicit-class.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing](Macros.foo("2")) +Some(2) diff --git a/test/files/run/macro-term-declared-in-implicit-class.flags b/test/files/run/macro-term-declared-in-implicit-class.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-implicit-class.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-implicit-class/Impls_Macros_1.scala b/test/files/run/macro-term-declared-in-implicit-class/Impls_Macros_1.scala new file mode 100644 index 0000000000..4c009cc367 --- /dev/null +++ b/test/files/run/macro-term-declared-in-implicit-class/Impls_Macros_1.scala @@ -0,0 +1,19 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def toOptionOfInt(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Ident(definitions.SomeModule), List(Select(Select(prefix.tree, TermName("x")), TermName("toInt"))))) + c.Expr[Option[Int]](body) + } +} + +object Macros { + implicit def foo(x: String): Foo = new Foo(x) + + class Foo(val x: String) { + def toOptionOfInt = macro Impls.toOptionOfInt + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-implicit-class/Test_2.scala b/test/files/run/macro-term-declared-in-implicit-class/Test_2.scala new file mode 100644 index 0000000000..d0bc9cc38c --- /dev/null +++ b/test/files/run/macro-term-declared-in-implicit-class/Test_2.scala @@ -0,0 +1,4 @@ +object Test extends App { + import Macros._ + println("2".toOptionOfInt) +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-method.check b/test/files/run/macro-term-declared-in-method.check new file mode 100644 index 0000000000..5e687db8bf --- /dev/null +++ b/test/files/run/macro-term-declared-in-method.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing]() +it works diff --git a/test/files/run/macro-term-declared-in-method.flags b/test/files/run/macro-term-declared-in-method.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-method.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-method/Impls_1.scala b/test/files/run/macro-term-declared-in-method/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-method/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-method/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-method/Macros_Test_2.scala new file mode 100644 index 0000000000..ed5c8b7c43 --- /dev/null +++ b/test/files/run/macro-term-declared-in-method/Macros_Test_2.scala @@ -0,0 +1,8 @@ +object Test extends App { + def bar() = { + def foo = macro Impls.foo + foo + } + + bar() +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-object-class.check b/test/files/run/macro-term-declared-in-object-class.check new file mode 100644 index 0000000000..47248d7af7 --- /dev/null +++ b/test/files/run/macro-term-declared-in-object-class.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing](new Test.this.outer.Macros()) +it works diff --git a/test/files/run/macro-term-declared-in-object-class.flags b/test/files/run/macro-term-declared-in-object-class.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-object-class.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-object-class/Impls_1.scala b/test/files/run/macro-term-declared-in-object-class/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-object-class/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-object-class/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-object-class/Macros_Test_2.scala new file mode 100644 index 0000000000..204deed61c --- /dev/null +++ b/test/files/run/macro-term-declared-in-object-class/Macros_Test_2.scala @@ -0,0 +1,10 @@ +object Macros { + class Macros { + def foo = macro Impls.foo + } +} + +object Test extends App { + val outer = Macros + new outer.Macros().foo +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-object-object.check b/test/files/run/macro-term-declared-in-object-object.check new file mode 100644 index 0000000000..35af59e40f --- /dev/null +++ b/test/files/run/macro-term-declared-in-object-object.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing](Test.this.outer.Macros) +it works diff --git a/test/files/run/macro-term-declared-in-object-object.flags b/test/files/run/macro-term-declared-in-object-object.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-object-object.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-object-object/Impls_1.scala b/test/files/run/macro-term-declared-in-object-object/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-object-object/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-object-object/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-object-object/Macros_Test_2.scala new file mode 100644 index 0000000000..e261a50f3d --- /dev/null +++ b/test/files/run/macro-term-declared-in-object-object/Macros_Test_2.scala @@ -0,0 +1,10 @@ +object Macros { + object Macros { + def foo = macro Impls.foo + } +} + +object Test extends App { + val outer = Macros + outer.Macros.foo +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-object.check b/test/files/run/macro-term-declared-in-object.check new file mode 100644 index 0000000000..4d955a96b1 --- /dev/null +++ b/test/files/run/macro-term-declared-in-object.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing](Macros) +it works diff --git a/test/files/run/macro-term-declared-in-object.flags b/test/files/run/macro-term-declared-in-object.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-object.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-object/Impls_1.scala b/test/files/run/macro-term-declared-in-object/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-object/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-object/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-object/Macros_Test_2.scala new file mode 100644 index 0000000000..a5a4862ba0 --- /dev/null +++ b/test/files/run/macro-term-declared-in-object/Macros_Test_2.scala @@ -0,0 +1,7 @@ +object Macros { + def foo = macro Impls.foo +} + +object Test extends App { + Macros.foo +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-package-object.check b/test/files/run/macro-term-declared-in-package-object.check new file mode 100644 index 0000000000..bc0069178d --- /dev/null +++ b/test/files/run/macro-term-declared-in-package-object.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing](Macros.`package`) +it works diff --git a/test/files/run/macro-term-declared-in-package-object.flags b/test/files/run/macro-term-declared-in-package-object.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-package-object.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-package-object/Impls_1.scala b/test/files/run/macro-term-declared-in-package-object/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-package-object/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-package-object/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-package-object/Macros_Test_2.scala new file mode 100644 index 0000000000..54a5962e80 --- /dev/null +++ b/test/files/run/macro-term-declared-in-package-object/Macros_Test_2.scala @@ -0,0 +1,8 @@ +package object Macros { + def foo = macro Impls.foo +} + +object Test extends App { + import Macros._ + foo +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-refinement.check b/test/files/run/macro-term-declared-in-refinement.check new file mode 100644 index 0000000000..09b8d015a6 --- /dev/null +++ b/test/files/run/macro-term-declared-in-refinement.check @@ -0,0 +1,2 @@ +prefix = Expr[Nothing](Test.this.macros) +it works diff --git a/test/files/run/macro-term-declared-in-refinement.flags b/test/files/run/macro-term-declared-in-refinement.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-refinement.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-refinement/Impls_1.scala b/test/files/run/macro-term-declared-in-refinement/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-refinement/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-refinement/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-refinement/Macros_Test_2.scala new file mode 100644 index 0000000000..ff9a66d58a --- /dev/null +++ b/test/files/run/macro-term-declared-in-refinement/Macros_Test_2.scala @@ -0,0 +1,9 @@ + +import scala.language.reflectiveCalls + +class Base + +object Test extends App { + val macros = new Base { def foo = macro Impls.foo } + macros.foo +} diff --git a/test/files/run/macro-term-declared-in-trait.check b/test/files/run/macro-term-declared-in-trait.check new file mode 100644 index 0000000000..0d70ac74f3 --- /dev/null +++ b/test/files/run/macro-term-declared-in-trait.check @@ -0,0 +1,15 @@ +prefix = Expr[Nothing]({ + final class $anon extends AnyRef with Base { + def (): anonymous class $anon = { + $anon.super.(); + () + }; + + }; + new $anon() +}) +it works +prefix = Expr[Nothing](Macros) +it works +prefix = Expr[Nothing](new Macros()) +it works diff --git a/test/files/run/macro-term-declared-in-trait.flags b/test/files/run/macro-term-declared-in-trait.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/macro-term-declared-in-trait.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-trait/Impls_1.scala b/test/files/run/macro-term-declared-in-trait/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/files/run/macro-term-declared-in-trait/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/files/run/macro-term-declared-in-trait/Macros_Test_2.scala b/test/files/run/macro-term-declared-in-trait/Macros_Test_2.scala new file mode 100644 index 0000000000..f75906b636 --- /dev/null +++ b/test/files/run/macro-term-declared-in-trait/Macros_Test_2.scala @@ -0,0 +1,13 @@ +trait Base { + def foo = macro Impls.foo +} + +object Macros extends Base + +class Macros extends Base + +object Test extends App { + (new Base {}).foo + Macros.foo + new Macros().foo +} \ No newline at end of file diff --git a/test/files/run/repl-term-macros.check b/test/files/run/repl-term-macros.check new file mode 100644 index 0000000000..eae489c294 --- /dev/null +++ b/test/files/run/repl-term-macros.check @@ -0,0 +1,44 @@ +Type in expressions to have them evaluated. +Type :help for more information. + +scala> + +scala> import scala.reflect.macros.Context +import scala.reflect.macros.Context + +scala> import language.experimental.macros +import language.experimental.macros + +scala> + +scala> def impl1(c: Context) = c.literalUnit +impl1: (c: scala.reflect.macros.Context)c.Expr[Unit] + +scala> def foo1 = macro impl1 +defined term macro foo1: Unit + +scala> foo1 + +scala> + +scala> def impl2(c: Context)() = c.literalUnit +impl2: (c: scala.reflect.macros.Context)()c.Expr[Unit] + +scala> def foo2() = macro impl2 +defined term macro foo2: ()Unit + +scala> foo2() + +scala> + +scala> def impl3(c: Context)(x: c.Expr[Int])(y: c.Expr[Int]) = c.literalUnit +impl3: (c: scala.reflect.macros.Context)(x: c.Expr[Int])(y: c.Expr[Int])c.Expr[Unit] + +scala> def foo3(x: Int)(y: Int) = macro impl3 +defined term macro foo3: (x: Int)(y: Int)Unit + +scala> foo3(2)(3) + +scala> + +scala> diff --git a/test/files/run/repl-term-macros.scala b/test/files/run/repl-term-macros.scala new file mode 100644 index 0000000000..f826259be9 --- /dev/null +++ b/test/files/run/repl-term-macros.scala @@ -0,0 +1,20 @@ +import scala.tools.partest.ReplTest + +object Test extends ReplTest { + def code = """ + import scala.reflect.macros.Context +import language.experimental.macros + +def impl1(c: Context) = c.literalUnit +def foo1 = macro impl1 +foo1 + +def impl2(c: Context)() = c.literalUnit +def foo2() = macro impl2 +foo2() + +def impl3(c: Context)(x: c.Expr[Int])(y: c.Expr[Int]) = c.literalUnit +def foo3(x: Int)(y: Int) = macro impl3 +foo3(2)(3) + """ +} \ No newline at end of file diff --git a/test/pending/run/macro-term-declared-in-anonymous-explicit-import.check b/test/pending/run/macro-term-declared-in-anonymous-explicit-import.check new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/pending/run/macro-term-declared-in-anonymous-explicit-import/Impls_1.scala b/test/pending/run/macro-term-declared-in-anonymous-explicit-import/Impls_1.scala new file mode 100644 index 0000000000..348f3420f2 --- /dev/null +++ b/test/pending/run/macro-term-declared-in-anonymous-explicit-import/Impls_1.scala @@ -0,0 +1,11 @@ +import scala.reflect.macros.{Context => Ctx} + +object Impls { + def foo(c: Ctx) = { + import c.{prefix => prefix} + import c.universe._ + val printPrefix = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("prefix = " + prefix)))) + val body = Block(List(printPrefix), Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant("it works"))))) + c.Expr[Unit](body) + } +} \ No newline at end of file diff --git a/test/pending/run/macro-term-declared-in-anonymous-explicit-import/Macros_Test_2.scala b/test/pending/run/macro-term-declared-in-anonymous-explicit-import/Macros_Test_2.scala new file mode 100644 index 0000000000..dd2317b1b7 --- /dev/null +++ b/test/pending/run/macro-term-declared-in-anonymous-explicit-import/Macros_Test_2.scala @@ -0,0 +1,6 @@ +import language.experimental.macros + +object Test extends App { + val macros = new { def foo = macro Impls.foo } + macros.foo +} \ No newline at end of file -- cgit v1.2.3