summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-02-19 14:44:15 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-02-19 14:44:24 -0800
commitfb8c75c01f86f41a62e549eb03953789658f7cae (patch)
treeb91a7448157def5cdf1d0e04705916d04e39f2c9 /main
parent790c21c976e5c2944ba7f729e0c5762de8f51baf (diff)
downloadmill-fb8c75c01f86f41a62e549eb03953789658f7cae.tar.gz
mill-fb8c75c01f86f41a62e549eb03953789658f7cae.tar.bz2
mill-fb8c75c01f86f41a62e549eb03953789658f7cae.zip
Improve error reporting for NamedTasks with the wrong number of parameters
Diffstat (limited to 'main')
-rw-r--r--main/test/src/mill/define/MacroErrorTests.scala62
1 files changed, 62 insertions, 0 deletions
diff --git a/main/test/src/mill/define/MacroErrorTests.scala b/main/test/src/mill/define/MacroErrorTests.scala
index a389feaa..c8b140fa 100644
--- a/main/test/src/mill/define/MacroErrorTests.scala
+++ b/main/test/src/mill/define/MacroErrorTests.scala
@@ -15,6 +15,68 @@ object MacroErrorTests extends TestSuite{
assert(err.msg == expectedMsg)
}
+ 'badParameterSets - {
+ 'command - {
+ val e = compileError("""
+ object foo extends mill.util.TestUtil.BaseModule{
+ def w = T.command{1}
+ }
+ mill.define.Discover[foo.type]
+ """)
+ assert(
+ e.msg.contains("`T.command` definitions must have 1 parameter list"),
+ e.pos.contains("def w = ")
+ )
+ }
+ 'target - {
+ val e = compileError("""
+ object foo extends mill.util.TestUtil.BaseModule{
+ def x() = T{1}
+ }
+ mill.define.Discover[foo.type]
+ """)
+ assert(
+ e.msg.contains("`T{...}` definitions must have 0 parameter lists"),
+ e.pos.contains("def x() = ")
+ )
+ }
+ 'input - {
+ val e = compileError("""
+ object foo extends mill.util.TestUtil.BaseModule{
+ def y() = T.input{1}
+ }
+ mill.define.Discover[foo.type]
+ """)
+ assert(
+ e.msg.contains("`T.input` definitions must have 0 parameter lists"),
+ e.pos.contains("def y() = ")
+ )
+ }
+ 'sources - {
+ val e = compileError("""
+ object foo extends mill.util.TestUtil.BaseModule{
+ def z() = T.sources{ammonite.ops.pwd}
+ }
+ mill.define.Discover[foo.type]
+ """)
+ assert(
+ e.msg.contains("`T.sources` definitions must have 0 parameter lists"),
+ e.pos.contains("def z() = ")
+ )
+ }
+ 'persistent - {
+ val e = compileError("""
+ object foo extends mill.util.TestUtil.BaseModule{
+ def a() = T.persistent{1}
+ }
+ mill.define.Discover[foo.type]
+ """)
+ assert(
+ e.msg.contains("`T.persistent` definitions must have 0 parameter lists"),
+ e.pos.contains("def a() = ")
+ )
+ }
+ }
'badTmacro - {
// Make sure we can reference values from outside the T{...} block as part
// of our `Target#apply()` calls, but we cannot reference any values that