The string escape sequences would probably need a N:M mapping

This mapping is unfinished: 331 of 857 nodes are still unmarked.

Before

1package mill.integration
2
3import mill.testkit.UtestIntegrationTestSuite
4
5import utest._
6
7object YamlConfigTasksTests extends UtestIntegrationTestSuite {
8 val tests: Tests = Tests {
9 test - integrationTest { tester =>
10 val res = tester.eval(("-k", "__.compile"))
11
12 assert(!res.isSuccess)
13
14 assert(res.err.contains(
15 "invalid build config in build.mill.yaml:2 key \"scalaVersionn\" does not override any task, did you mean \"scalaVersion\"?"
16 ))
17 assert(res.err.replace('\\', '/').contains(
18 "invalid build config in test/package.mill.yaml:2 key \"scalaVersionWrongInner\" does not override any task"
19 ))
20
21 tester.modifyFile(
22 tester.workspacePath / "build.mill.yaml",
23 _.replace("scalaVersionn", "scalaVersion")
24 )
25 tester.modifyFile(
26 tester.workspacePath / "test/package.mill.yaml",
27 _.replace("scalaVersionWrongInner", "scalaVersion")
28 )
29
30 val res2 = tester.eval(("-k", "__.compile"))
31
32 assert(res2.err.contains(
33 "scalaVersion Failed de-serializing config override at build.mill.yaml:2 expected string got sequence"
34 ))
35 assert(res2.err.contains(
36 "test.scalaVersion Failed de-serializing config override at test/package.mill.yaml:2 expected string got sequence"
37 ))
38
39 tester.modifyFile(
40 tester.workspacePath / "build.mill.yaml",
41 _.replace("scalaVersion", "#scalaVersion")
42 )
43 tester.modifyFile(
44 tester.workspacePath / "test/package.mill.yaml",
45 _.replace("scalaVersion", "#scalaVersion")
46 )
47
48 val res3 = tester.eval(("-k", "__.compile"))
49
50 assert(res3.err.contains("scalaVersion configuration missing in build.mill.yaml"))
51 assert(res3.err.contains("test.scalaVersion configuration missing in test/package.mill.yaml"))
52 }
53 }
54}
55

After

1package mill.integration
2
3import mill.testkit.UtestIntegrationTestSuite
4
5import utest._
6
7object YamlConfigTasksTests extends UtestIntegrationTestSuite {
8 val tests: Tests = Tests {
9 test - integrationTest { tester =>
10 val res = tester.eval(("-k", "__.compile"))
11
12 assert(!res.isSuccess)
13
14 assert(res.err.contains("[error] build.mill.yaml:2:16"))
15 assert(res.err.contains("scalaVersionn: []"))
16 assert(res.err.contains(" ^"))
17 assert(res.err.contains(
18 "key \"scalaVersionn\" does not override any task, did you mean \"scalaVersion\"?"
19 ))
20 assert(res.err.replace('\\', '/').contains("[error] test/package.mill.yaml:2:25"))
21 assert(res.err.contains("scalaVersionWrongInner: []"))
22 assert(res.err.contains(" ^"))
23 assert(res.err.contains("key \"scalaVersionWrongInner\" does not override any task"))
24
25 tester.modifyFile(
26 tester.workspacePath / "build.mill.yaml",
27 _.replace("scalaVersionn", "scalaVersion")
28 )
29 tester.modifyFile(
30 tester.workspacePath / "test/package.mill.yaml",
31 _.replace("scalaVersionWrongInner", "scalaVersion")
32 )
33
34 val res2 = tester.eval(("-k", "__.compile"))
35
36 assert(res2.err.contains("[error] build.mill.yaml:2:15"))
37 assert(res2.err.contains("scalaVersion: []"))
38 assert(res2.err.contains(" ^"))
39 assert(
40 res2.err.contains("Failed de-serializing config override: expected string got sequence")
41 )
42 assert(res2.err.replace('\\', '/').contains("[error] test/package.mill.yaml:2:15"))
43
44 tester.modifyFile(
45 tester.workspacePath / "build.mill.yaml",
46 _.replace("scalaVersion", "#scalaVersion")
47 )
48 tester.modifyFile(
49 tester.workspacePath / "test/package.mill.yaml",
50 _.replace("scalaVersion", "#scalaVersion")
51 )
52
53 val res3 = tester.eval(("-k", "__.compile"))
54
55 assert(res3.err.contains("scalaVersion configuration missing in build.mill.yaml"))
56 assert(res3.err.contains("test.scalaVersion configuration missing in test/package.mill.yaml"))
57 }
58 }
59}
60

Before

compilation_unit
package_clause
package "package"
package_identifier
identifier "mill"
. "."
identifier "integration"
import_declaration
import "import"
identifier "mill"
. "."
identifier "testkit"
. "."
identifier "UtestIntegrationTestSuite"
import_declaration
import "import"
identifier "utest"
. "."
namespace_wildcard
_ "_"
object_definition
object "object"
identifier "YamlConfigTasksTests"
extends_clause
extends "extends"
type_identifier "UtestIntegrationTestSuite"
template_body
{ "{"
val_definition
val "val"
identifier "tests"
: ":"
type_identifier "Tests"
= "="
call_expression
identifier "Tests"
block
{ "{"
infix_expression
identifier "test"
operator_identifier "-"
call_expression
identifier "integrationTest"
block
{ "{"
lambda_expression
identifier "tester"
=> "=>"
indented_block
val_definition
val "val"
identifier "res"
= "="
call_expression
field_expression
identifier "tester"
. "."
identifier "eval"
arguments
( "("
tuple_expression
( "("
string "\"-k\""
, ","
string "\"__.compile\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
prefix_expression
! "!"
field_expression
identifier "res"
. "."
identifier "isSuccess"
) ")"
call_expression (+21 nodes collapsed)
call_expression (+29 nodes collapsed)
call_expression (+28 nodes collapsed)
call_expression (+28 nodes collapsed)
val_definition
val "val"
identifier "res2"
= "="
call_expression
field_expression
identifier "tester"
. "."
identifier "eval"
arguments
( "("
tuple_expression
( "("
string "\"-k\""
, ","
string "\"__.compile\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res2"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"scalaVersion Failed de-serializing config override at build"...
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res2"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"test.scalaVersion Failed de-serializing config override at "...
) ")"
) ")"
call_expression (+28 nodes collapsed)
call_expression (+28 nodes collapsed)
val_definition
val "val"
identifier "res3"
= "="
call_expression
field_expression
identifier "tester"
. "."
identifier "eval"
arguments
( "("
tuple_expression
( "("
string "\"-k\""
, ","
string "\"__.compile\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res3"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"scalaVersion configuration missing in build.mill.yaml\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res3"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"test.scalaVersion configuration missing in test/package.mil"...
) ")"
) ")"
} "}"
} "}"
} "}"

After

compilation_unit
package_clause
package "package"
package_identifier
identifier "mill"
. "."
identifier "integration"
import_declaration
import "import"
identifier "mill"
. "."
identifier "testkit"
. "."
identifier "UtestIntegrationTestSuite"
import_declaration
import "import"
identifier "utest"
. "."
namespace_wildcard
_ "_"
object_definition
object "object"
identifier "YamlConfigTasksTests"
extends_clause
extends "extends"
type_identifier "UtestIntegrationTestSuite"
template_body
{ "{"
val_definition
val "val"
identifier "tests"
: ":"
type_identifier "Tests"
= "="
call_expression
identifier "Tests"
block
{ "{"
infix_expression
identifier "test"
operator_identifier "-"
call_expression
identifier "integrationTest"
block
{ "{"
lambda_expression
identifier "tester"
=> "=>"
indented_block
val_definition
val "val"
identifier "res"
= "="
call_expression
field_expression
identifier "tester"
. "."
identifier "eval"
arguments
( "("
tuple_expression
( "("
string "\"-k\""
, ","
string "\"__.compile\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
prefix_expression
! "!"
field_expression
identifier "res"
. "."
identifier "isSuccess"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"[error] build.mill.yaml:2:16\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"scalaVersionn: []\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\" ^\""
) ")"
) ")"
call_expression (+21 nodes collapsed)
call_expression (+27 nodes collapsed)
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"scalaVersionWrongInner: []\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\" ^\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string
escape_sequence "\\\""
escape_sequence "\\\""
) ")"
) ")"
call_expression (+28 nodes collapsed)
call_expression (+28 nodes collapsed)
val_definition
val "val"
identifier "res2"
= "="
call_expression
field_expression
identifier "tester"
. "."
identifier "eval"
arguments
( "("
tuple_expression
( "("
string "\"-k\""
, ","
string "\"__.compile\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res2"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"[error] build.mill.yaml:2:15\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res2"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"scalaVersion: []\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res2"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\" ^\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res2"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"Failed de-serializing config override: expected string got "...
) ")"
) ")"
call_expression (+27 nodes collapsed)
call_expression (+28 nodes collapsed)
call_expression (+28 nodes collapsed)
val_definition
val "val"
identifier "res3"
= "="
call_expression
field_expression
identifier "tester"
. "."
identifier "eval"
arguments
( "("
tuple_expression
( "("
string "\"-k\""
, ","
string "\"__.compile\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res3"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"scalaVersion configuration missing in build.mill.yaml\""
) ")"
) ")"
call_expression
identifier "assert"
arguments
( "("
call_expression
field_expression
field_expression
identifier "res3"
. "."
identifier "err"
. "."
identifier "contains"
arguments
( "("
string "\"test.scalaVersion configuration missing in test/package.mil"...
) ")"
) ")"
} "}"
} "}"
} "}"