diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-06-09 11:49:39 -0700 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-06-09 11:49:39 -0700 |
commit | eb7082b284c35e968cf6ef8dff19274870b8fbe4 (patch) | |
tree | b4dc222bd93800eed7c5caa3b565b2f8b9ecf0b9 /main | |
parent | 9d65a0e06338611bbc36854123683f29929e6e08 (diff) | |
parent | e96b57ef1a9a1b47098d7d09a7d1422635d1af2c (diff) | |
download | mill-eb7082b284c35e968cf6ef8dff19274870b8fbe4.tar.gz mill-eb7082b284c35e968cf6ef8dff19274870b8fbe4.tar.bz2 mill-eb7082b284c35e968cf6ef8dff19274870b8fbe4.zip |
Merge branch 'master' of github.com:lihaoyi/mill
Diffstat (limited to 'main')
-rw-r--r-- | main/src/mill/main/ReplApplyHandler.scala | 8 | ||||
-rw-r--r-- | main/src/mill/main/Resolve.scala | 12 | ||||
-rw-r--r-- | main/test/src/mill/define/BasePathTests.scala | 6 | ||||
-rw-r--r-- | main/test/src/mill/define/DiscoverTests.scala | 3 | ||||
-rw-r--r-- | main/test/src/mill/define/GraphTests.scala | 12 | ||||
-rw-r--r-- | main/test/src/mill/eval/EvaluationTests.scala | 12 | ||||
-rw-r--r-- | main/test/src/mill/eval/FailureTests.scala | 33 | ||||
-rw-r--r-- | main/test/src/mill/main/MainTests.scala | 14 | ||||
-rw-r--r-- | main/test/src/mill/util/TestGraphs.scala | 9 |
9 files changed, 98 insertions, 11 deletions
diff --git a/main/src/mill/main/ReplApplyHandler.scala b/main/src/mill/main/ReplApplyHandler.scala index 9ce30142..22a247cc 100644 --- a/main/src/mill/main/ReplApplyHandler.scala +++ b/main/src/mill/main/ReplApplyHandler.scala @@ -44,10 +44,10 @@ object ReplApplyHandler{ def pprintModule(m: mill.define.Module, evaluator: Evaluator[_]) = { pprint.Tree.Lazy( ctx => Iterator(m.millInternal.millModuleEnclosing, ":", m.millInternal.millModuleLine.toString) ++ - (if (m.millInternal.reflect[mill.Module].isEmpty) Nil + (if (m.millInternal.reflectAll[mill.Module].isEmpty) Nil else ctx.applyPrefixColor("\nChildren:").toString +: - m.millInternal.reflect[mill.Module].map("\n ." + _.millOuterCtx.segment.pathSegments.mkString("."))) ++ + m.millInternal.reflectAll[mill.Module].map("\n ." + _.millOuterCtx.segment.pathSegments.mkString("."))) ++ (evaluator.rootModule.millDiscover.value.get(m.getClass) match{ case None => Nil case Some(commands) => @@ -57,10 +57,10 @@ object ReplApplyHandler{ ")()" } }) ++ - (if (m.millInternal.reflect[Target[_]].isEmpty) Nil + (if (m.millInternal.reflectAll[Target[_]].isEmpty) Nil else { Seq(ctx.applyPrefixColor("\nTargets:").toString) ++ - m.millInternal.reflect[Target[_]].sortBy(_.label).map(t => + m.millInternal.reflectAll[Target[_]].map(t => "\n ." + t.label + "()" ) }) diff --git a/main/src/mill/main/Resolve.scala b/main/src/mill/main/Resolve.scala index 4baac312..d0a08c87 100644 --- a/main/src/mill/main/Resolve.scala +++ b/main/src/mill/main/Resolve.scala @@ -15,7 +15,7 @@ object ResolveMetadata extends Resolve[String]{ val targets = obj .millInternal - .reflect[Target[_]] + .reflectAll[Target[_]] .map(_.toString) val commands = for{ (cls, entryPoints) <- discover.value @@ -127,8 +127,7 @@ object ResolveSegments extends Resolve[Segments] { val target = obj .millInternal - .reflect[Target[_]] - .find(_.label == last) + .reflectSingle[Target[_]](last) .map(t => Right(t.ctx.segments)) val command = @@ -193,16 +192,15 @@ object ResolveTasks extends Resolve[NamedTask[Any]]{ Right( obj.millInternal.modules .filter(_ != obj) - .flatMap(m => m.millInternal.reflect[Target[_]]) + .flatMap(m => m.millInternal.reflectAll[Target[_]]) ) - case "_" => Right(obj.millInternal.reflect[Target[_]]) + case "_" => Right(obj.millInternal.reflectAll[Target[_]]) case _ => val target = obj .millInternal - .reflect[Target[_]] - .find(_.label == last) + .reflectSingle[Target[_]](last) .map(Right(_)) val command = Resolve.invokeCommand(obj, last, discover, rest).headOption diff --git a/main/test/src/mill/define/BasePathTests.scala b/main/test/src/mill/define/BasePathTests.scala index 1f5b4037..d5167081 100644 --- a/main/test/src/mill/define/BasePathTests.scala +++ b/main/test/src/mill/define/BasePathTests.scala @@ -14,6 +14,12 @@ object BasePathTests extends TestSuite{ 'singleton - { check(testGraphs.singleton)(identity) } + 'backtickIdentifiers - { + check(testGraphs.bactickIdentifiers)( + _.`nested-module`, + "nested-module" + ) + } 'separateGroups - { check(TestGraphs.triangleTask)(identity) } diff --git a/main/test/src/mill/define/DiscoverTests.scala b/main/test/src/mill/define/DiscoverTests.scala index cd9939f0..248d6afe 100644 --- a/main/test/src/mill/define/DiscoverTests.scala +++ b/main/test/src/mill/define/DiscoverTests.scala @@ -14,6 +14,9 @@ object DiscoverTests extends TestSuite{ 'singleton - { check(testGraphs.singleton)(_.single) } + 'backtickIdentifiers { + check(testGraphs.bactickIdentifiers)(_.`up-target`, _.`a-down-target`, _.`nested-module`.`nested-target`) + } 'separateGroups - { check(TestGraphs.triangleTask)(_.left, _.right) } diff --git a/main/test/src/mill/define/GraphTests.scala b/main/test/src/mill/define/GraphTests.scala index 7e6680be..224ce59f 100644 --- a/main/test/src/mill/define/GraphTests.scala +++ b/main/test/src/mill/define/GraphTests.scala @@ -25,6 +25,10 @@ object GraphTests extends TestSuite{ targets = Agg(singleton.single), expected = Agg(singleton.single) ) + 'backtickIdentifiers - check( + targets = Agg(bactickIdentifiers.`a-down-target`), + expected = Agg(bactickIdentifiers.`up-target`, bactickIdentifiers.`a-down-target`) + ) 'pair - check( targets = Agg(pair.down), expected = Agg(pair.up, pair.down) @@ -95,6 +99,14 @@ object GraphTests extends TestSuite{ Agg(_.single), Agg(singleton.single -> 1) ) + 'backtickIdentifiers - check(bactickIdentifiers)( + _.`a-down-target`, + Agg(_.`up-target`, _.`a-down-target`), + Agg( + bactickIdentifiers.`up-target` -> 1, + bactickIdentifiers.`a-down-target` -> 1 + ) + ) 'pair - check(pair)( _.down, Agg(_.up, _.down), diff --git a/main/test/src/mill/eval/EvaluationTests.scala b/main/test/src/mill/eval/EvaluationTests.scala index 9c215086..75a5bbe3 100644 --- a/main/test/src/mill/eval/EvaluationTests.scala +++ b/main/test/src/mill/eval/EvaluationTests.scala @@ -67,6 +67,18 @@ object EvaluationTests extends TestSuite{ // After incrementing the counter, it forces re-evaluation check(single, expValue = 1, expEvaled = Agg(single)) } + 'backtickIdentifiers - { + import graphs.bactickIdentifiers._ + val check = new Checker(bactickIdentifiers) + + check(`a-down-target`, expValue = 0, expEvaled = Agg(`up-target`, `a-down-target`)) + + `a-down-target`.counter += 1 + check(`a-down-target`, expValue = 1, expEvaled = Agg(`a-down-target`)) + + `up-target`.counter += 1 + check(`a-down-target`, expValue = 2, expEvaled = Agg(`up-target`, `a-down-target`)) + } 'pair - { import pair._ val check = new Checker(pair) diff --git a/main/test/src/mill/eval/FailureTests.scala b/main/test/src/mill/eval/FailureTests.scala index 244b084d..22021079 100644 --- a/main/test/src/mill/eval/FailureTests.scala +++ b/main/test/src/mill/eval/FailureTests.scala @@ -80,6 +80,39 @@ object FailureTests extends TestSuite{ expectedRawValues = Seq(Result.Skipped) ) } + 'evaluateBacktickIdentifiers - { + val check = new TestEvaluator(bactickIdentifiers) + import bactickIdentifiers._ + check.fail( + `a-down-target`, + expectedFailCount = 0, + expectedRawValues = Seq(Result.Success(0)) + ) + + `up-target`.failure = Some("lols") + + check.fail( + `a-down-target`, + expectedFailCount = 1, + expectedRawValues = Seq(Result.Skipped) + ) + + `up-target`.failure = None + + check.fail( + `a-down-target`, + expectedFailCount = 0, + expectedRawValues = Seq(Result.Success(0)) + ) + + `up-target`.exception = Some(new IndexOutOfBoundsException()) + + check.fail( + `a-down-target`, + expectedFailCount = 1, + expectedRawValues = Seq(Result.Skipped) + ) + } 'multipleUsesOfDest - { object build extends TestUtil.BaseModule { // Using `T.ctx( ).dest` twice in a single task is ok diff --git a/main/test/src/mill/main/MainTests.scala b/main/test/src/mill/main/MainTests.scala index f9bf7aec..e836099c 100644 --- a/main/test/src/mill/main/MainTests.scala +++ b/main/test/src/mill/main/MainTests.scala @@ -34,6 +34,20 @@ object MainTests extends TestSuite{ 'neg6 - check("single.doesntExist", Left("Task single is not a module and has no children.")) 'neg7 - check("", Left("Selector cannot be empty")) } + 'backtickIdentifiers - { + val check = MainTests.check(bactickIdentifiers) _ + 'pos1 - check("up-target", Right(Seq(_.`up-target`))) + 'pos2 - check("a-down-target", Right(Seq(_.`a-down-target`))) + 'neg1 - check("uptarget", Left("Cannot resolve uptarget. Did you mean up-target?")) + 'neg2 - check("upt-arget", Left("Cannot resolve upt-arget. Did you mean up-target?")) + 'neg3 - check("up-target.doesntExist", Left("Task up-target is not a module and has no children.")) + 'neg4 - check("", Left("Selector cannot be empty")) + 'neg5 - check("invisible&", Left("Cannot resolve invisible. Try `mill resolve _` to see what's available.")) + 'nested - { + 'pos - check("nested-module.nested-target", Right(Seq(_.`nested-module`.`nested-target`))) + 'neg - check("nested-module.doesntExist", Left("Cannot resolve nested-module.doesntExist. Try `mill resolve nested-module._` to see what's available.")) + } + } 'nested - { val check = MainTests.check(nestedModule) _ 'pos1 - check("single", Right(Seq(_.single))) diff --git a/main/test/src/mill/util/TestGraphs.scala b/main/test/src/mill/util/TestGraphs.scala index 83e03576..d3b35ddc 100644 --- a/main/test/src/mill/util/TestGraphs.scala +++ b/main/test/src/mill/util/TestGraphs.scala @@ -20,6 +20,15 @@ class TestGraphs(){ val single = test() } + object bactickIdentifiers extends TestUtil.BaseModule { + val `up-target` = test() + val `a-down-target` = test(`up-target`) + val `invisible&` = test() + object `nested-module` extends TestUtil.BaseModule { + val `nested-target` = test() + } + } + // up---down object pair extends TestUtil.BaseModule{ val up = test() |