This mapping has 1 multi-map group: several pairings are equally correct there. The code view shows one arbitrary valid pairing, not the only one.

Before

1package mill.api
2
3import mill.api.internal.OverrideMapping
4
5import scala.annotation.implicitNotFound
6import scala.quoted.*
7
8/**
9 * The contextual information provided to a [[mill.api.Module]] or [[mill.api.Task]]
…lines 10–41 unchanged (32 lines)
42
43object ModuleCtx extends LowPriCtx {
44 trait Wrapper {
45 def moduleSegments: Segments = moduleCtx.segments
46 def moduleCtx: ModuleCtx
47 private[mill] def moduleLinearized: Seq[Class[?]]
48 private[mill] def moduleDynamicBuildOverrides: Map[String, internal.LocatedValue] = Map()
49 }
50
51 import upickle.core.BufferedValue
52 implicit val bufferedRw: upickle.ReadWriter[BufferedValue] =
53 new upickle.ReadWriter[BufferedValue] {
54 def visitArray(length: Int, index: Int): upickle.core.ArrVisitor[Any, BufferedValue] =
55 new upickle.core.ArrVisitor[Any, BufferedValue] {
56 def subVisitor = bufferedRw
57 private[this] val vs = collection.mutable.ArrayBuffer.newBuilder[BufferedValue]
58 def visitValue(v: Any, index: Int): Unit = vs += v.asInstanceOf[BufferedValue]
59
60 def visitEnd(index: Int) = BufferedValue.Arr(vs.result(), index)
61 }
62
63 def visitBinary(bytes: Array[Byte], offset: Int, len: Int, index: Int) =
64 BufferedValue.Binary(bytes, offset, len, index)
65 def visitChar(s: Char, index: Int) = BufferedValue.Char(s, index)
66 def visitExt(tag: Byte, bytes: Array[Byte], offset: Int, len: Int, index: Int) =
67 BufferedValue.Ext(tag, bytes, offset, len, index)
68 def visitFalse(index: Int) = BufferedValue.False(index)
69 def visitFloat32(d: Float, index: Int) = BufferedValue.Float32(d, index)
70 def visitFloat64(d: Double, index: Int) = BufferedValue.NumRaw(d, index)
71 def visitFloat64String(s: String, index: Int) = BufferedValue.Float64String(s, index)
72 def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, index: Int) =
73 BufferedValue.Num(s, decIndex, expIndex, index)
74 def visitInt32(i: Int, index: Int) = BufferedValue.Int32(i, index)
75 def visitInt64(i: Long, index: Int) = BufferedValue.Int64(i, index)
76 def visitNull(index: Int) = BufferedValue.Null(index)
77 def visitObject(
78 length: Int,
79 jsonableKeys: Boolean,
80 index: Int
81 ): upickle.core.ObjVisitor[Any, BufferedValue] =
82 new upickle.core.ObjVisitor[Any, BufferedValue] {
83 private[this] var key: BufferedValue = null
84 private[this] val vs =
85 collection.mutable.ArrayBuffer.newBuilder[(BufferedValue, BufferedValue)]
86
87 def subVisitor = bufferedRw
88
89 def visitKey(index: Int) = bufferedRw
90
91 def visitKeyValue(s: Any): Unit = key = s.asInstanceOf[BufferedValue]
92
93 def visitValue(v: Any, index: Int): Unit = vs += (key -> v.asInstanceOf[BufferedValue])
94
95 def visitEnd(index: Int) = BufferedValue.Obj(vs.result(), jsonableKeys = true, index)
96 }
97 def visitString(s: CharSequence, index: Int) = BufferedValue.Str(s, index)
98 def visitTrue(index: Int) = BufferedValue.True(index)
99 def visitUInt64(i: Long, index: Int) = BufferedValue.UInt64(i, index)
100
101 def write0[V](out: upickle.core.Visitor[?, V], v: BufferedValue): V =
102 BufferedValue.transform(v, out)
103
104 }
105 private[mill] case class HeaderData(
106 `extends`: Seq[String] = Nil,
107 moduleDeps: Seq[String] = Nil,
108 compileModuleDeps: Seq[String] = Nil,
109 runModuleDeps: Seq[String] = Nil,
110 @upickle.implicits.flatten rest: Map[String, upickle.core.BufferedValue]
111 ) derives upickle.ReadWriter
112
113 private case class Impl(
114 enclosing: String,
115 lineNum: Int,
116 millSourcePath: os.Path,
117 segments: Segments,
…lines 118–250 unchanged (133 lines)

After

1package mill.api
2
3import mill.api.internal.{Located, OverrideMapping}
4import upickle.core.BufferedValue
5
6import scala.annotation.implicitNotFound
7import scala.quoted.*
8
9/**
10 * The contextual information provided to a [[mill.api.Module]] or [[mill.api.Task]]
…lines 11–42 unchanged (32 lines)
43
44object ModuleCtx extends LowPriCtx {
45 trait Wrapper {
46 def moduleSegments: Segments = moduleCtx.segments
47 def moduleCtx: ModuleCtx
48 private[mill] def moduleLinearized: Seq[Class[?]]
49 private[mill] def moduleDynamicBuildOverrides: Map[String, internal.Located[BufferedValue]] =
50 Map()
51 }
52
53 import upickle.core.BufferedValue
54 private implicit val bufferedR: upickle.Reader[BufferedValue] =
55 new upickle.Reader.Delegate(BufferedValue.Builder)
56
57 new upickle.Writer[BufferedValue] {
58 def write0[V](out: upickle.core.Visitor[?, V], v: BufferedValue): V =
59 BufferedValue.transform(v, out)
60 }
61
62 private[mill] case class HeaderData(
63 `extends`: Located[Seq[Located[String]]] = Located(null, -1, Nil),
64 moduleDeps: Located[Seq[Located[String]]] = Located(null, -1, Nil),
65 compileModuleDeps: Located[Seq[Located[String]]] = Located(null, -1, Nil),
66 runModuleDeps: Located[Seq[Located[String]]] = Located(null, -1, Nil),
67 @upickle.implicits.flatten rest: Map[String, upickle.core.BufferedValue]
68 )
69 object HeaderData {
70
71 def headerDataReader(path: os.Path) = {
72 implicit def locatedReader[T: upickle.Reader]: Located.UpickleReader[T] =
73 new Located.UpickleReader[T](path)
74 upickle.macroR[HeaderData]
75 }
76 }
77
78 private case class Impl(
79 enclosing: String,
80 lineNum: Int,
81 millSourcePath: os.Path,
82 segments: Segments,
…lines 83–215 unchanged (133 lines)

Before

compilation_unit
package_clause
package "package"
package_identifier
identifier "mill"
. "."
identifier "api"
import_declaration
import "import"
identifier "mill"
. "."
identifier "api"
. "."
identifier "internal"
. "."
identifier "OverrideMapping"
import_declaration
import "import"
identifier "scala"
. "."
identifier "annotation"
. "."
identifier "implicitNotFound"
import_declaration
import "import"
identifier "scala"
. "."
identifier "quoted"
. "."
namespace_wildcard
* "*"
block_comment
/* "/*"
*/ " */"
trait_definition (+208 nodes collapsed)
object_definition
object "object"
identifier "ModuleCtx"
extends_clause
extends "extends"
type_identifier "LowPriCtx"
template_body
{ "{"
trait_definition
trait "trait"
identifier "Wrapper"
template_body
{ "{"
function_definition
def "def"
identifier "moduleSegments"
: ":"
type_identifier "Segments"
= "="
field_expression
identifier "moduleCtx"
. "."
identifier "segments"
function_declaration
def "def"
identifier "moduleCtx"
: ":"
type_identifier "ModuleCtx"
function_declaration (+22 nodes collapsed)
function_definition
modifiers
access_modifier
private "private"
access_qualifier
[ "["
identifier "mill"
] "]"
def "def"
identifier "moduleDynamicBuildOverrides"
: ":"
generic_type
type_identifier "Map"
type_arguments
[ "["
type_identifier "String"
, ","
stable_type_identifier
identifier "internal"
. "."
type_identifier "LocatedValue" any 1:2
] "]"
= "="
call_expression
identifier "Map"
arguments
( "("
) ")"
} "}"
import_declaration
import "import"
identifier "upickle"
. "."
identifier "core"
. "."
identifier "BufferedValue"
val_definition
modifiers
implicit "implicit"
val "val"
identifier "bufferedRw"
: ":"
generic_type
stable_type_identifier
identifier "upickle"
. "."
type_identifier "ReadWriter"
type_arguments
[ "["
type_identifier "BufferedValue"
] "]"
= "="
indented_block
instance_expression
new "new"
generic_type
stable_type_identifier
identifier "upickle"
. "."
type_identifier "ReadWriter"
type_arguments
[ "["
type_identifier "BufferedValue"
] "]"
template_body
{ "{"
function_definition
def "def"
identifier "visitArray"
parameters
( "("
parameter
identifier "length"
: ":"
type_identifier "Int"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
: ":"
generic_type
stable_type_identifier
stable_identifier
identifier "upickle"
. "."
identifier "core"
. "."
type_identifier "ArrVisitor"
type_arguments
[ "["
type_identifier "Any"
, ","
type_identifier "BufferedValue"
] "]"
= "="
indented_block
instance_expression
new "new"
generic_type
stable_type_identifier
stable_identifier
identifier "upickle"
. "."
identifier "core"
. "."
type_identifier "ArrVisitor"
type_arguments
[ "["
type_identifier "Any"
, ","
type_identifier "BufferedValue"
] "]"
template_body
{ "{"
function_definition
def "def"
identifier "subVisitor"
= "="
identifier "bufferedRw"
val_definition
modifiers
access_modifier
private "private"
access_qualifier
[ "["
identifier "this"
] "]"
val "val"
identifier "vs"
= "="
generic_function
field_expression
field_expression
field_expression
identifier "collection"
. "."
identifier "mutable"
. "."
identifier "ArrayBuffer"
. "."
identifier "newBuilder"
type_arguments
[ "["
type_identifier "BufferedValue"
] "]"
function_definition
def "def"
identifier "visitValue"
parameters
( "("
parameter
identifier "v"
: ":"
type_identifier "Any"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
: ":"
type_identifier "Unit"
= "="
generic_function
infix_expression
identifier "vs"
operator_identifier "+="
field_expression
identifier "v"
. "."
identifier "asInstanceOf"
type_arguments
[ "["
type_identifier "BufferedValue"
] "]"
function_definition
def "def"
identifier "visitEnd"
parameters
( "("
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Arr"
arguments
( "("
call_expression
field_expression
identifier "vs"
. "."
identifier "result"
arguments
( "("
) ")"
, ","
identifier "index"
) ")"
} "}"
function_definition
def "def"
identifier "visitBinary"
parameters
( "("
parameter
identifier "bytes"
: ":"
generic_type
type_identifier "Array"
type_arguments
[ "["
type_identifier "Byte"
] "]"
, ","
parameter
identifier "offset"
: ":"
type_identifier "Int"
, ","
parameter
identifier "len"
: ":"
type_identifier "Int"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
indented_block
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Binary"
arguments
( "("
identifier "bytes"
, ","
identifier "offset"
, ","
identifier "len"
, ","
identifier "index"
) ")"
function_definition
def "def"
identifier "visitChar"
parameters
( "("
parameter
identifier "s"
: ":"
type_identifier "Char"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Char"
arguments
( "("
identifier "s"
, ","
identifier "index"
) ")"
function_definition
def "def"
identifier "visitExt"
parameters
( "("
parameter
identifier "tag"
: ":"
type_identifier "Byte"
, ","
parameter
identifier "bytes"
: ":"
generic_type
type_identifier "Array"
type_arguments
[ "["
type_identifier "Byte"
] "]"
, ","
parameter
identifier "offset"
: ":"
type_identifier "Int"
, ","
parameter
identifier "len"
: ":"
type_identifier "Int"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
indented_block
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Ext"
arguments
( "("
identifier "tag"
, ","
identifier "bytes"
, ","
identifier "offset"
, ","
identifier "len"
, ","
identifier "index"
) ")"
function_definition
def "def"
identifier "visitFalse"
parameters
( "("
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "False"
arguments
( "("
identifier "index"
) ")"
function_definition
def "def"
identifier "visitFloat32"
parameters
( "("
parameter
identifier "d"
: ":"
type_identifier "Float"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Float32"
arguments
( "("
identifier "d"
, ","
identifier "index"
) ")"
function_definition
def "def"
identifier "visitFloat64"
parameters
( "("
parameter
identifier "d"
: ":"
type_identifier "Double"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "NumRaw"
arguments
( "("
identifier "d"
, ","
identifier "index"
) ")"
function_definition
def "def"
identifier "visitFloat64String"
parameters
( "("
parameter
identifier "s"
: ":"
type_identifier "String"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Float64String"
arguments
( "("
identifier "s"
, ","
identifier "index"
) ")"
function_definition
def "def"
identifier "visitFloat64StringParts"
parameters
( "("
parameter
identifier "s"
: ":"
type_identifier "CharSequence"
, ","
parameter
identifier "decIndex"
: ":"
type_identifier "Int"
, ","
parameter
identifier "expIndex"
: ":"
type_identifier "Int"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
indented_block
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Num"
arguments
( "("
identifier "s"
, ","
identifier "decIndex"
, ","
identifier "expIndex"
, ","
identifier "index"
) ")"
function_definition
def "def"
identifier "visitInt32"
parameters
( "("
parameter
identifier "i"
: ":"
type_identifier "Int"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Int32"
arguments
( "("
identifier "i"
, ","
identifier "index"
) ")"
function_definition
def "def"
identifier "visitInt64"
parameters
( "("
parameter
identifier "i"
: ":"
type_identifier "Long"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Int64"
arguments
( "("
identifier "i"
, ","
identifier "index"
) ")"
function_definition
def "def"
identifier "visitNull"
parameters
( "("
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Null"
arguments
( "("
identifier "index"
) ")"
function_definition
def "def"
identifier "visitObject"
parameters
( "("
parameter
identifier "length"
: ":"
type_identifier "Int"
, ","
parameter
identifier "jsonableKeys"
: ":"
type_identifier "Boolean"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
: ":"
generic_type
stable_type_identifier
stable_identifier
identifier "upickle"
. "."
identifier "core"
. "."
type_identifier "ObjVisitor"
type_arguments
[ "["
type_identifier "Any"
, ","
type_identifier "BufferedValue"
] "]"
= "="
indented_block
instance_expression
new "new"
generic_type
stable_type_identifier
stable_identifier
identifier "upickle"
. "."
identifier "core"
. "."
type_identifier "ObjVisitor"
type_arguments
[ "["
type_identifier "Any"
, ","
type_identifier "BufferedValue"
] "]"
template_body
{ "{"
var_definition
modifiers
access_modifier
private "private"
access_qualifier
[ "["
identifier "this"
] "]"
var "var"
identifier "key"
: ":"
type_identifier "BufferedValue"
= "="
null_literal "null"
val_definition
modifiers
access_modifier
private "private"
access_qualifier
[ "["
identifier "this"
] "]"
val "val"
identifier "vs"
= "="
indented_block
generic_function
field_expression
field_expression
field_expression
identifier "collection"
. "."
identifier "mutable"
. "."
identifier "ArrayBuffer"
. "."
identifier "newBuilder"
type_arguments
[ "["
tuple_type
( "("
type_identifier "BufferedValue"
, ","
type_identifier "BufferedValue"
) ")"
] "]"
function_definition
def "def"
identifier "subVisitor"
= "="
identifier "bufferedRw"
function_definition
def "def"
identifier "visitKey"
parameters
( "("
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
identifier "bufferedRw"
function_definition
def "def"
identifier "visitKeyValue"
parameters
( "("
parameter
identifier "s"
: ":"
type_identifier "Any"
) ")"
: ":"
type_identifier "Unit"
= "="
assignment_expression
identifier "key"
= "="
generic_function
field_expression
identifier "s"
. "."
identifier "asInstanceOf"
type_arguments
[ "["
type_identifier "BufferedValue"
] "]"
function_definition
def "def"
identifier "visitValue"
parameters
( "("
parameter
identifier "v"
: ":"
type_identifier "Any"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
: ":"
type_identifier "Unit"
= "="
infix_expression
identifier "vs"
operator_identifier "+="
parenthesized_expression
( "("
generic_function
infix_expression
identifier "key"
operator_identifier "->"
field_expression
identifier "v"
. "."
identifier "asInstanceOf"
type_arguments
[ "["
type_identifier "BufferedValue"
] "]"
) ")"
function_definition
def "def"
identifier "visitEnd"
parameters
( "("
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Obj"
arguments
( "("
call_expression
field_expression
identifier "vs"
. "."
identifier "result"
arguments
( "("
) ")"
, ","
assignment_expression
identifier "jsonableKeys"
= "="
boolean_literal
true "true"
, ","
identifier "index"
) ")"
} "}"
function_definition
def "def"
identifier "visitString"
parameters
( "("
parameter
identifier "s"
: ":"
type_identifier "CharSequence"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "Str"
arguments
( "("
identifier "s"
, ","
identifier "index"
) ")"
function_definition
def "def"
identifier "visitTrue"
parameters
( "("
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "True"
arguments
( "("
identifier "index"
) ")"
function_definition
def "def"
identifier "visitUInt64"
parameters
( "("
parameter
identifier "i"
: ":"
type_identifier "Long"
, ","
parameter
identifier "index"
: ":"
type_identifier "Int"
) ")"
= "="
call_expression
field_expression
identifier "BufferedValue"
. "."
identifier "UInt64"
arguments
( "("
identifier "i"
, ","
identifier "index"
) ")"
function_definition (+47 nodes collapsed)
} "}"
class_definition
modifiers
access_modifier
private "private"
access_qualifier
[ "["
identifier "mill"
] "]"
case "case"
class "class"
identifier "HeaderData"
class_parameters
( "("
class_parameter
identifier "`extends`"
: ":"
generic_type
type_identifier "Seq"
type_arguments
[ "["
type_identifier "String"
] "]"
= "="
identifier "Nil"
, ","
class_parameter
identifier "moduleDeps"
: ":"
generic_type
type_identifier "Seq"
type_arguments
[ "["
type_identifier "String"
] "]"
= "="
identifier "Nil"
, ","
class_parameter
identifier "compileModuleDeps"
: ":"
generic_type
type_identifier "Seq"
type_arguments
[ "["
type_identifier "String"
] "]"
= "="
identifier "Nil"
, ","
class_parameter
identifier "runModuleDeps"
: ":"
generic_type
type_identifier "Seq"
type_arguments
[ "["
type_identifier "String"
] "]"
= "="
identifier "Nil"
, ","
class_parameter (+26 nodes collapsed)
) ")"
derives_clause
derives "derives"
stable_type_identifier
identifier "upickle"
. "."
type_identifier "ReadWriter"
class_definition (+246 nodes collapsed)
block_comment
/* "/*"
*/ " */"
trait_definition (+97 nodes collapsed)
function_definition (+198 nodes collapsed)
function_definition (+88 nodes collapsed)
} "}"
trait_definition (+50 nodes collapsed)
object_definition (+129 nodes collapsed)

After

compilation_unit
package_clause
package "package"
package_identifier
identifier "mill"
. "."
identifier "api"
import_declaration
import "import"
identifier "mill"
. "."
identifier "api"
. "."
identifier "internal"
. "."
namespace_selectors
{ "{"
identifier "Located"
, ","
identifier "OverrideMapping"
} "}"
import_declaration
import "import"
identifier "upickle"
. "."
identifier "core"
. "."
identifier "BufferedValue"
import_declaration
import "import"
identifier "scala"
. "."
identifier "annotation"
. "."
identifier "implicitNotFound"
import_declaration
import "import"
identifier "scala"
. "."
identifier "quoted"
. "."
namespace_wildcard
* "*"
block_comment
/* "/*"
*/ " */"
trait_definition (+208 nodes collapsed)
object_definition
object "object"
identifier "ModuleCtx"
extends_clause
extends "extends"
type_identifier "LowPriCtx"
template_body
{ "{"
trait_definition
trait "trait"
identifier "Wrapper"
template_body
{ "{"
function_definition
def "def"
identifier "moduleSegments"
: ":"
type_identifier "Segments"
= "="
field_expression
identifier "moduleCtx"
. "."
identifier "segments"
function_declaration
def "def"
identifier "moduleCtx"
: ":"
type_identifier "ModuleCtx"
function_declaration (+22 nodes collapsed)
function_definition
modifiers
access_modifier
private "private"
access_qualifier
[ "["
identifier "mill"
] "]"
def "def"
identifier "moduleDynamicBuildOverrides"
: ":"
generic_type
type_identifier "Map"
type_arguments
[ "["
type_identifier "String"
, ","
generic_type
stable_type_identifier
identifier "internal"
. "."
type_identifier "Located" any 1:2
type_arguments
[ "["
type_identifier "BufferedValue" any 1:2
] "]"
] "]"
= "="
indented_block
call_expression
identifier "Map"
arguments
( "("
) ")"
} "}"
import_declaration
import "import"
identifier "upickle"
. "."
identifier "core"
. "."
identifier "BufferedValue"
val_definition
modifiers
access_modifier
private "private"
implicit "implicit"
val "val"
identifier "bufferedR"
: ":"
generic_type
stable_type_identifier
identifier "upickle"
. "."
type_identifier "Reader"
type_arguments
[ "["
type_identifier "BufferedValue"
] "]"
= "="
indented_block
instance_expression
new "new"
stable_type_identifier
stable_identifier
identifier "upickle"
. "."
identifier "Reader"
. "."
type_identifier "Delegate"
arguments
( "("
field_expression
identifier "BufferedValue"
. "."
identifier "Builder"
) ")"
instance_expression
new "new"
generic_type
stable_type_identifier
identifier "upickle"
. "."
type_identifier "Writer"
type_arguments
[ "["
type_identifier "BufferedValue"
] "]"
template_body
{ "{"
function_definition (+47 nodes collapsed)
} "}"
class_definition
modifiers
access_modifier
private "private"
access_qualifier
[ "["
identifier "mill"
] "]"
case "case"
class "class"
identifier "HeaderData"
class_parameters
( "("
class_parameter
identifier "`extends`"
: ":"
generic_type
type_identifier "Located"
type_arguments
[ "["
generic_type
type_identifier "Seq"
type_arguments
[ "["
generic_type
type_identifier "Located"
type_arguments
[ "["
type_identifier "String"
] "]"
] "]"
] "]"
= "="
call_expression
identifier "Located"
arguments
( "("
null_literal "null"
, ","
integer_literal "-1"
, ","
identifier "Nil"
) ")"
, ","
class_parameter
identifier "moduleDeps"
: ":"
generic_type
type_identifier "Located"
type_arguments
[ "["
generic_type
type_identifier "Seq"
type_arguments
[ "["
generic_type
type_identifier "Located"
type_arguments
[ "["
type_identifier "String"
] "]"
] "]"
] "]"
= "="
call_expression
identifier "Located"
arguments
( "("
null_literal "null"
, ","
integer_literal "-1"
, ","
identifier "Nil"
) ")"
, ","
class_parameter
identifier "compileModuleDeps"
: ":"
generic_type
type_identifier "Located"
type_arguments
[ "["
generic_type
type_identifier "Seq"
type_arguments
[ "["
generic_type
type_identifier "Located"
type_arguments
[ "["
type_identifier "String"
] "]"
] "]"
] "]"
= "="
call_expression
identifier "Located"
arguments
( "("
null_literal "null"
, ","
integer_literal "-1"
, ","
identifier "Nil"
) ")"
, ","
class_parameter
identifier "runModuleDeps"
: ":"
generic_type
type_identifier "Located"
type_arguments
[ "["
generic_type
type_identifier "Seq"
type_arguments
[ "["
generic_type
type_identifier "Located"
type_arguments
[ "["
type_identifier "String"
] "]"
] "]"
] "]"
= "="
call_expression
identifier "Located"
arguments
( "("
null_literal "null"
, ","
integer_literal "-1"
, ","
identifier "Nil"
) ")"
, ","
class_parameter (+26 nodes collapsed)
) ")"
object_definition
object "object"
identifier "HeaderData"
template_body
{ "{"
function_definition
def "def"
identifier "headerDataReader"
parameters
( "("
parameter
identifier "path"
: ":"
stable_type_identifier
identifier "os"
. "."
type_identifier "Path"
) ")"
= "="
block
{ "{"
function_definition
modifiers
implicit "implicit"
def "def"
identifier "locatedReader"
type_parameters
[ "["
identifier "T"
: ":"
context_bound
stable_type_identifier
identifier "upickle"
. "."
type_identifier "Reader"
] "]"
: ":"
generic_type
stable_type_identifier
identifier "Located"
. "."
type_identifier "UpickleReader"
type_arguments
[ "["
type_identifier "T"
] "]"
= "="
indented_block
instance_expression
new "new"
generic_type
stable_type_identifier
identifier "Located"
. "."
type_identifier "UpickleReader"
type_arguments
[ "["
type_identifier "T"
] "]"
arguments
( "("
identifier "path"
) ")"
generic_function
field_expression
identifier "upickle"
. "."
identifier "macroR"
type_arguments
[ "["
type_identifier "HeaderData"
] "]"
} "}"
} "}"
class_definition (+246 nodes collapsed)
block_comment
/* "/*"
*/ " */"
trait_definition (+97 nodes collapsed)
function_definition (+198 nodes collapsed)
function_definition (+88 nodes collapsed)
} "}"
trait_definition (+50 nodes collapsed)
object_definition (+129 nodes collapsed)