Build Logs
katrix/perspective • 3.8.0-RC5:2025-12-31
Errors
0
Warnings
50
Total Lines
350
1##################################
2Clonning https://github.com/katrix/perspective.git into /build/repo using revision v0.3.0
3##################################
4Note: switching to '5a8020dfb8f22de90578324e5b7bd0c1a511e360'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21----
22Preparing build for 3.8.0-RC5
23Scala binary version found: 3.8
24Implicitly using source version 3.8
25Scala binary version found: 3.8
26Implicitly using source version 3.8
27Would try to apply common scalacOption (best-effort, sbt/mill only):
28Append: ,REQUIRE:-source:3.8
29Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
30
31Try apply source patch:
32Path: dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala
33Pattern: test("InlineHKDSumGeneric.nameToIndex is correct") {
34Replacement: test("InlineHKDSumGeneric.nameToIndex is correct") {
35 import instance.{indexK, mapConst}
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (21))
38Compiled project (Scala 3.7.3, JVM (21))
39Successfully applied pattern 'test("InlineHKDSumGeneric.nameToIndex is correct") {' in dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala
40----
41Starting build for 3.8.0-RC5
42Execute tests: true
43sbt project found:
44Sbt version 1.9.7
45 is not supported, minimal supported version is 1.11.5
46Enforcing usage of sbt in version 1.11.5
47No prepare script found for project katrix/perspective
48##################################
49Scala version: 3.8.0-RC5
50Targets: net.katsstuff%perspective net.katsstuff%perspective-derivation
51Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala","pattern":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {","replaceWith":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {\n import instance.{indexK, mapConst}\n"}]}
52##################################
53Using extra scalacOptions: ,REQUIRE:-source:3.8
54Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
55[sbt_options] declare -a sbt_options=()
56[process_args] java_version = '21'
57[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21/rt.jar'
58# Executing command line:
59java
60-Dfile.encoding=UTF-8
61-Dcommunitybuild.scala=3.8.0-RC5
62-Dcommunitybuild.project.dependencies.add=
63-Xmx7G
64-Xms4G
65-Xss8M
66-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
67-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21
68-jar
69/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
70"setCrossScalaVersions 3.8.0-RC5"
71"++3.8.0-RC5 -v"
72"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
73"set every credentials := Nil"
74"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
75"removeScalacOptionsStartingWith -P:wartremover"
76
77moduleMappings
78"runBuild 3.8.0-RC5 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala","pattern":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {","replaceWith":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {\n import instance.{indexK, mapConst}\n"}]}""" net.katsstuff%perspective net.katsstuff%perspective-derivation"
79
80[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 21)
81[info] loading settings for project repo-build from akka.sbt, plugins.sbt, unidoc.sbt...
82[info] loading project definition from /build/repo/project
83[info] loading settings for project perspectiveRoot from build.sbt...
84[info] resolving key references (14913 settings) ...
85[info] set current project to perspectiveRoot (in build file:/build/repo/)
86Execute setCrossScalaVersions: 3.8.0-RC5
87OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveMacrosJS/crossScalaVersions
88OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveDerivationJS/crossScalaVersions
89OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveExamples/crossScalaVersions
90OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveJVM/crossScalaVersions
91OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveDerivationJVM/crossScalaVersions
92OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC5 in dottyPerspectiveJVM/crossScalaVersions
93OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in dottyPerspectiveJVM/crossScalaVersions
94OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC5 in dottyPerspectiveJS/crossScalaVersions
95OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in dottyPerspectiveJS/crossScalaVersions
96OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC5 in docs/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in docs/crossScalaVersions
98OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveJS/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveMacrosJVM/crossScalaVersions
100OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC5 in dottyPerspectiveDerivationJVM/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in dottyPerspectiveDerivationJVM/crossScalaVersions
102OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC5 in dottyPerspectiveExamples/crossScalaVersions
103OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in dottyPerspectiveExamples/crossScalaVersions
104OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC5 in dottyPerspectiveDerivationJS/crossScalaVersions
105OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in dottyPerspectiveDerivationJS/crossScalaVersions
106[info] set current project to perspectiveRoot (in build file:/build/repo/)
107[info] Setting Scala version to 3.8.0-RC5 on 6 projects.
108[info] Switching Scala version on:
109[info] dottyPerspectiveExamples (3.8.0-RC5)
110[info] dottyPerspectiveJS (3.8.0-RC5)
111[info] docs (3.8.0-RC5)
112[info] dottyPerspectiveDerivationJS (3.8.0-RC5)
113[info] dottyPerspectiveJVM (3.8.0-RC5)
114[info] dottyPerspectiveDerivationJVM (3.8.0-RC5)
115[info] Excluding projects:
116[info] scala2PerspectiveDerivationJS (2.13.12)
117[info] scala2PerspectiveDerivationJVM (2.13.12)
118[info] perspectiveDotty (2.12.20)
119[info] scala2PerspectiveJVM (2.13.12)
120[info] * perspectiveRoot (2.12.20)
121[info] perspectiveScala2 (2.12.20)
122[info] scala2PerspectiveMacrosJVM (2.13.12)
123[info] scala2PerspectiveMacrosJS (2.13.12)
124[info] scala2PerspectiveExamples (2.13.12)
125[info] scala2PerspectiveJS (2.13.12)
126[info] Reapplying settings...
127[info] set current project to perspectiveRoot (in build file:/build/repo/)
128Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
129[info] Reapplying settings...
130[info] set current project to perspectiveRoot (in build file:/build/repo/)
131[info] Defining Global / credentials, credentials and 14 others.
132[info] The new values will be used by Global / pgpSelectPassphrase, Global / pgpSigningKey and 79 others.
133[info] Run `last` for details.
134[info] Reapplying settings...
135[info] set current project to perspectiveRoot (in build file:/build/repo/)
136Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
137[info] Reapplying settings...
138OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
139
140 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
141 Did you mean perspectiveScala2 / allExcludeDependencies ?
142 , retry without global scopes
143[info] Reapplying settings...
144[info] set current project to perspectiveRoot (in build file:/build/repo/)
145Execute removeScalacOptionsStartingWith: -P:wartremover
146[info] Reapplying settings...
147[info] set current project to perspectiveRoot (in build file:/build/repo/)
148[success] Total time: 0 s, completed Dec 31, 2025, 9:23:59 PM
149Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala","pattern":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {","replaceWith":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {\n import instance.{indexK, mapConst}\n"}]}
150Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
151Starting build...
152Projects: Set(dottyPerspectiveJVM, dottyPerspectiveDerivationJVM)
153Starting build for ProjectRef(file:/build/repo/,dottyPerspectiveJVM) (perspective)... [0/2]
154OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
155OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
156Compile scalacOptions: -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
157[info] compiling 19 Scala sources to /build/repo/dotty/perspective/.jvm/target/scala-3.8.0-RC5/classes ...
158[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
159[warn] one warning found
160[info] done compiling
161Starting build for ProjectRef(file:/build/repo/,dottyPerspectiveDerivationJVM) (perspective-derivation)... [1/2]
162Compile scalacOptions: -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
163[info] compiling 9 Scala sources to /build/repo/dotty/derivation/.jvm/target/scala-3.8.0-RC5/classes ...
164[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
165[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/main/scala/perspective/derivation/exprHkdGeneric.scala:160:10
166[warn] 160 | new TypeLength[elemTypes] {
167[warn] | ^
168[warn] | New anonymous class definition will be duplicated at each inline site
169[warn] |
170[warn] | longer explanation available when compiling with `-explain`
171[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/main/scala/perspective/derivation/exprHkdGeneric.scala:586:10
172[warn] 586 | new TypeLength[elemTypes] {
173[warn] | ^
174[warn] | New anonymous class definition will be duplicated at each inline site
175[warn] |
176[warn] | longer explanation available when compiling with `-explain`
177[warn] three warnings found
178[info] done compiling
179[info] compiling 13 Scala sources to /build/repo/dotty/derivation/.jvm/target/scala-3.8.0-RC5/test-classes ...
180[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
181[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/test/scala/perspective/derivation/InlineCodecTests.scala:21:10
182[warn] 21 | new PerspectiveInlineDecoder[A]:
183[warn] | ^
184[warn] | New anonymous class definition will be duplicated at each inline site
185[warn] |
186[warn] | longer explanation available when compiling with `-explain`
187[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/test/scala/perspective/derivation/InlineCodecTests.scala:46:10
188[warn] 46 | new PerspectiveInlineDecoder[A]:
189[warn] | ^
190[warn] | New anonymous class definition will be duplicated at each inline site
191[warn] |
192[warn] | longer explanation available when compiling with `-explain`
193[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/test/scala/perspective/derivation/InlineCodecTests.scala:78:10
194[warn] 78 | new PerspectiveInlineEncoder[A]:
195[warn] | ^
196[warn] | New anonymous class definition will be duplicated at each inline site
197[warn] |
198[warn] | longer explanation available when compiling with `-explain`
199[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/test/scala/perspective/derivation/InlineCodecTests.scala:104:10
200[warn] 104 | new PerspectiveInlineEncoder[A]:
201[warn] | ^
202[warn] | New anonymous class definition will be duplicated at each inline site
203[warn] |
204[warn] | longer explanation available when compiling with `-explain`
205[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/test/scala/perspective/derivation/InlineUnrollingCodecTests.scala:21:10
206[warn] 21 | new PerspectiveInlineEncoder[A]:
207[warn] | ^
208[warn] | New anonymous class definition will be duplicated at each inline site
209[warn] |
210[warn] | longer explanation available when compiling with `-explain`
211[warn] 6 warnings found
212[warn] 6 warnings found
213[info] done compiling
214[info] InlineUnrollingCodecTests:
215[info] ExprCodecTests:
216[info] - Foo as json
217[info] - Foo from json
218[info] HKDProductGenericTests:
219[info] - HKDProductGeneric.from(to(_)) roundtrip is unchanged
220[info] - HKDProductGeneric.names is correct
221[info] - HKDProductGeneric.typeName is correct
222[info] - HKDProductGeneric.nameToIndex is correct
223[info] - HKDProductGeneric.genFromTuple(tupleFromGen(_)) roundtrip is unchanged
224[info] - HKDProductGeneric.Gen[TC] is correct
225[info] - HKDProductGeneric.productElementId(a)(idx) corresponds to HKDProductGeneric.indexK(HKDProductGeneric.to(a))(idx)
226[info] - HKDProductGeneric.tabulateFoldLeft corresponds to HKDProductGeneric.traverse.foldLeftK(instance.representable.indicesK)
227[info] - HKDProductGeneric.tabulateTraverseK corresponds to HKDProductGeneric.traverse.traverseK(instance.representable.indicesK)
228[info] - HKDProductGeneric.tabulateTraverseKOption corresponds to HKDProductGeneric.traverse.traverseK(instance.representable.indicesK)
229[info] - HKDProductGeneric.tabulateTraverseKEither corresponds to HKDProductGeneric.traverse.traverseK(instance.representable.indicesK)
230[info] CodecTests:
231[info] - Foo as json
232[info] - Foo from json
233[info] - Bar as json
234[info] - Bar from json
235[info] InlineHKDSumGenericTests:
236[info] - InlineHKDSumGeneric.from(to(_)) roundtrip is unchanged
237[info] - InlineHKDSumGeneric.names is correct
238[info] - InlineHKDSumGeneric.typeName is correct
239[info] - InlineHKDSumGeneric.nameToIndex is correct
240[info] - InlineHKDSumGeneric.genFromTuple(tupleFromGen(_)) roundtrip is unchanged
241[info] - InlineHKDSumGeneric.Gen[TC] is correct
242[info] - InlineHKDSumGeneric.mapK corresponds to HKDSumGeneric.mapK
243[info] - InlineHKDSumGeneric.map2K corresponds to HKDSumGeneric.map2K
244[info] - InlineHKDSumGeneric.unitK corresponds to HKDSumGeneric.unitK
245[info] - InlineHKDSumGeneric.names corresponds to HKDSumGeneric.names
246[info] - InlineHKDSumGeneric.foldLeftK corresponds to HKDSumGeneric.foldLeftK
247[info] - InlineHKDSumGeneric.traverseK[Id] corresponds to HKDSumGeneric.traverseK[Id]
248[info] - InlineHKDSumGeneric.traverseK[Either(Right)] corresponds to HKDSumGeneric.traverseK[Either(Right)]
249[info] - InlineHKDSumGeneric.traverseK[Either(Left)] corresponds to HKDSumGeneric.traverseK[Either(Left)]
250[info] - InlineHKDSumGeneric.traverseK[Option(Some)] corresponds to HKDSumGeneric.traverseK[Option(Some)]
251[info] - InlineHKDSumGeneric.traverseK[Option(None)] corresponds to HKDSumGeneric.traverseK[Option(None)]
252[info] - InlineHKDSumGeneric.cosequenceK corresponds to HKDSumGeneric.cosequenceK
253[info] - InlineHKDSumGeneric.flatMapK corresponds to HKDSumGeneric.flatMapK
254[info] - InlineHKDSumGeneric.tabulateK corresponds to HKDSumGeneric.tabulateK
255[info] - InlineHKDSumGeneric.tabulateFoldLeft corresponds to HKDSumGeneric.indicesK.tabulateK
256[info] - InlineHKDSumGeneric.tabulateTraverseK[Id] corresponds to HKDSumGeneric.indicesK.traverseK[Id]
257[info] - InlineHKDSumGeneric.tabulateTraverseK[Either(Right)] corresponds to HKDSumGeneric.indicesK.traverseK[Either(Right)]
258[info] - InlineHKDSumGeneric.tabulateTraverseK[Either(Left)] corresponds to HKDSumGeneric.indicesK.traverseK[Either(Left)]
259[info] - InlineHKDSumGeneric.tabulateTraverseK[Option(Some)] corresponds to HKDSumGeneric.indicesK.traverseK[Option(Some)]
260[info] - InlineHKDSumGeneric.tabulateTraverseK[Option(None)] corresponds to HKDSumGeneric.indicesK.traverseK[Option(None)]
261[info] HKDSumGenericTests:
262[info] - HKDSumGeneric.from(to(_)) roundtrip is unchanged
263[info] - HKDSumGeneric.names is correct
264[info] - HKDSumGeneric.typeName is correct
265[info] - HKDSumGeneric.nameToIndex is correct
266[info] - HKDSumGeneric.genFromTuple(tupleFromGen(_)) roundtrip is unchanged
267[info] - HKDSumGeneric.Gen[TC] is correct
268[info] - HKDSumGeneric.tabulateFoldLeft corresponds to HKDSumGeneric.traverse.foldLeftK(instance.representable.indicesK)
269[info] - HKDSumGeneric.tabulateTraverseK corresponds to HKDSumGeneric.traverse.traverseK(instance.representable.indicesK)
270[info] - HKDSumGeneric.tabulateTraverseKOption corresponds to HKDSumGeneric.traverse.traverseK(instance.representable.indicesK)
271[info] - HKDSumGeneric.tabulateTraverseKEither corresponds to HKDSumGeneric.traverse.traverseK(instance.representable.indicesK)
272[info] InlineCodecTests:
273[info] - Foo as json
274[info] - Foo from json
275[info] - Bar as json
276[info] - Bar from json
277[info] InlineHKDProductGenericTests:
278[info] - InlineHKDProductGeneric.from(to(_)) roundtrip is unchanged
279[info] - InlineHKDProductGeneric.names is correct
280[info] - InlineHKDProductGeneric.typeName is correct
281[info] - InlineHKDProductGeneric.nameToIndex is correct
282[info] - InlineHKDProductGeneric.genFromTuple(tupleFromGen(_)) roundtrip is unchanged
283[info] - InlineHKDProductGeneric.Gen[TC] is correct
284[info] - InlineHKDProductGeneric.mapK corresponds to HKDProductGeneric.mapK
285[info] - InlineHKDProductGeneric.map2K corresponds to HKDProductGeneric.map2K
286[info] - InlineHKDProductGeneric.unitK corresponds to HKDProductGeneric.unitK
287[info] - InlineHKDProductGeneric.names corresponds to HKDProductGeneric.names
288[info] - InlineHKDProductGeneric.foldLeftK corresponds to HKDProductGeneric.foldLeftK
289[info] - InlineHKDProductGeneric.traverseK[Id] corresponds to HKDProductGeneric.traverseK[Id]
290[info] - InlineHKDProductGeneric.traverseK[Either(Right)] corresponds to HKDProductGeneric.traverseK[Either(Right)]
291[info] - InlineHKDProductGeneric.traverseK[Either(Left)] corresponds to HKDProductGeneric.traverseK[Either(Left)]
292[info] - InlineHKDProductGeneric.traverseK[Option(Some)] corresponds to HKDProductGeneric.traverseK[Option(Some)]
293[info] - InlineHKDProductGeneric.traverseK[Option(None)] corresponds to HKDProductGeneric.traverseK[Option(None)]
294[info] - InlineHKDProductGeneric.cosequenceK corresponds to HKDProductGeneric.cosequenceK
295[info] - InlineHKDProductGeneric.flatMapK corresponds to HKDProductGeneric.flatMapK
296[info] - InlineHKDProductGeneric.tabulateK corresponds to HKDProductGeneric.tabulateK
297[info] - InlineHKDProductGeneric.tabulateFoldLeft corresponds to HKDProductGeneric.indicesK.tabulateK
298[info] - InlineHKDProductGeneric.tabulateTraverseK[Id] corresponds to HKDProductGeneric.indicesK.traverseK[Id]
299[info] - InlineHKDProductGeneric.tabulateTraverseK[Either(Right)] corresponds to HKDProductGeneric.indicesK.traverseK[Either(Right)]
300[info] - InlineHKDProductGeneric.tabulateTraverseK[Either(Left)] corresponds to HKDProductGeneric.indicesK.traverseK[Either(Left)]
301[info] - InlineHKDProductGeneric.tabulateTraverseK[Option(Some)] corresponds to HKDProductGeneric.indicesK.traverseK[Option(Some)]
302[info] - InlineHKDProductGeneric.tabulateTraverseK[Option(None)] corresponds to HKDProductGeneric.indicesK.traverseK[Option(None)]
303[info] - InlineHKDProductGeneric.productElementId(a)(idx) corresponds to InlineHKDProductGeneric.indexK(InlineHKDProductGeneric.to(a))(idx)
304[info] HelpersTests:
305[info] - constValueTupleOptimized correct
306[info] - summonAllOptimized correct
307[info] ProductKTests:
308[info] - ProductK.tabulateK indices correct
309[info] - ProductK.tabulateK corresponds to List.tabulate
310[info] - ProductK instances are correct
311[info] - ProductK.foldLeft corresponds to List.foldLeft
312[info] - ProductK.traverseK corresponds to List.traverse
313[info] - ProductK.traverseK order corresponds to List.traverse order
314
315************************
316Build summary:
317[{
318 "module": "perspective",
319 "compile": {"status": "ok", "tookMs": 8948, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
320 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
321 "test-compile": {"status": "ok", "tookMs": 193, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
322 "test": {"status": "ok", "tookMs": 127, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
323 "publish": {"status": "skipped", "tookMs": 0},
324 "metadata": {
325 "crossScalaVersions": ["2.12.20"]
326}
327},{
328 "module": "perspective-derivation",
329 "compile": {"status": "ok", "tookMs": 9139, "warnings": 2, "errors": 0, "sourceVersion": "3.8"},
330 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
331 "test-compile": {"status": "ok", "tookMs": 10600, "warnings": 5, "errors": 0, "sourceVersion": "3.8"},
332 "test": {"status": "ok", "tookMs": 825, "passed": 90, "failed": 0, "ignored": 0, "skipped": 0, "total": 90, "byFramework": [{"framework": "unknown", "stats": {"passed": 90, "failed": 0, "ignored": 0, "skipped": 0, "total": 90}}]},
333 "publish": {"status": "skipped", "tookMs": 0},
334 "metadata": {
335 "crossScalaVersions": ["2.12.20"]
336}
337}]
338************************
339[success] Total time: 33 s, completed Dec 31, 2025, 9:24:32 PM
340[0J/build/build.patch:32: trailing whitespace.
341sbt.version=1.9.7
342Checking patch project/plugins.sbt...
343Checking patch project/build.properties...
344Checking patch dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala...
345Checking patch build.sbt...
346Applied patch project/plugins.sbt cleanly.
347Applied patch project/build.properties cleanly.
348Applied patch dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala cleanly.
349Applied patch build.sbt cleanly.
350warning: 1 line adds whitespace errors.