Build Logs

j-mie6/parsley • 3.8.0:2026-01-13

Errors

4

Warnings

522

Total Lines

1655

1##################################
2Clonning https://github.com/j-mie6/parsley.git into /build/repo using revision v5.0.0-M17
3##################################
4Note: switching to 'fc56707a64f25bc1cd7494d91e01883b5c6125c8'.
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
21Would override fixed Scala version: 3.3.7
22----
23Preparing build for 3.8.0
24Scala binary version found: 3.8
25Using configured source version: 3.4-migration
26Scala binary version found: 3.8
27Using configured source version: 3.4-migration
28Would try to apply common scalacOption (best-effort, sbt/mill only):
29Append: ,REQUIRE:-source:3.4-migration
30Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
31
32Try apply source patch:
33Path: project/plugins.sbt
34Pattern: addSbtPlugin\("pink.cozydev" % "protosearch-sbt" .*\)
35Replacement: // $0
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (21))
38Compiled project (Scala 3.7.3, JVM (21))
39Successfully applied pattern 'addSbtPlugin\("pink.cozydev" % "protosearch-sbt" .*\)' in project/plugins.sbt
40
41Try apply source patch:
42Path: build.sbt
43Pattern: val Scala3 = "3.3.7"
44Replacement: val Scala3 = "3.8.0"
45Successfully applied pattern 'val Scala3 = "3.3.7"' in build.sbt
46----
47Starting build for 3.8.0
48Execute tests: true
49sbt project found:
50Sbt version 1.10.7
511.11.5 is not supported, minimal supported version is 1.11.5
52Enforcing usage of sbt in version 1.11.5
53No prepare script found for project j-mie6/parsley
54##################################
55Scala version: 3.8.0
56Targets: com.github.j-mie6%parsley com.github.j-mie6%parsley-debug com.github.j-mie6%parsley-docs
57Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.4-migration","migrationVersions":[],"sourcePatches":[{"path":"project/plugins.sbt","pattern":"addSbtPlugin\\(\"pink.cozydev\" % \"protosearch-sbt\" .*\\)","replaceWith":"// $0"},{"path":"build.sbt","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
58##################################
59Using extra scalacOptions: ,REQUIRE:-source:3.4-migration
60Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
61[sbt_options] declare -a sbt_options=()
62[process_args] java_version = '21'
63[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21/rt.jar'
64# Executing command line:
65java
66-Xmx4G
67-Dcommunitybuild.scala=3.8.0
68-Dcommunitybuild.project.dependencies.add=
69-Xmx7G
70-Xms4G
71-Xss8M
72-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
73-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21
74-jar
75/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
76"setCrossScalaVersions 3.8.0"
77"++3.8.0 -v"
78"mapScalacOptions ",REQUIRE:-source:3.4-migration,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
79"set every credentials := Nil"
80"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
81"removeScalacOptionsStartingWith -P:wartremover"
82
83moduleMappings
84"runBuild 3.8.0 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.4-migration","migrationVersions":[],"sourcePatches":[{"path":"project/plugins.sbt","pattern":"addSbtPlugin\\(\"pink.cozydev\" % \"protosearch-sbt\" .*\\)","replaceWith":"// $0"},{"path":"build.sbt","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}""" com.github.j-mie6%parsley com.github.j-mie6%parsley-debug com.github.j-mie6%parsley-docs"
85
86[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 21)
87[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
88[info] loading project definition from /build/repo/project
89[info] compiling 4 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
90[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
91[info] Compilation completed in 8.527s.
92[info] done compiling
93[info] loading settings for project root from build.sbt...
94[info] resolving key references (13044 settings) ...
95[info] set scmInfo to https://github.com/j-mie6/parsley
96[info] set current project to root (in build file:/build/repo/)
97Execute setCrossScalaVersions: 3.8.0
98OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in unidocs/crossScalaVersions
99[info] set scmInfo to https://github.com/j-mie6/parsley
100OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in root/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List() -> List(3.8.0) in root/crossScalaVersions
102OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in parsleyDebug/crossScalaVersions
103OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in docs/crossScalaVersions
104OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in parsleyJS/crossScalaVersions
105OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in rootNative/crossScalaVersions
106OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in rootJS/crossScalaVersions
107OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in parsleyNative/crossScalaVersions
108OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in parsleyDebugNative/crossScalaVersions
109OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in parsleyDebugJS/crossScalaVersions
110OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in rootJVM/crossScalaVersions
111OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in parsley/crossScalaVersions
112[info] set current project to root (in build file:/build/repo/)
113[info] Setting Scala version to 3.8.0 on 12 projects.
114[info] Switching Scala version on:
115[info] * root (3.8.0)
116[info] parsleyDebug (2.13.16, 2.12.20, 3.8.0)
117[info] unidocs (2.13.16, 2.12.20, 3.8.0)
118[info] rootJS (2.13.16, 2.12.20, 3.8.0)
119[info] docs (2.13.16, 2.12.20, 3.8.0)
120[info] parsleyDebugNative (2.13.16, 2.12.20, 3.8.0)
121[info] rootJVM (2.13.16, 2.12.20, 3.8.0)
122[info] rootNative (2.13.16, 2.12.20, 3.8.0)
123[info] parsleyNative (2.13.16, 2.12.20, 3.8.0)
124[info] parsley (2.13.16, 2.12.20, 3.8.0)
125[info] parsleyDebugJS (2.13.16, 2.12.20, 3.8.0)
126[info] parsleyJS (2.13.16, 2.12.20, 3.8.0)
127[info] Excluding projects:
128[info] Reapplying settings...
129[info] set scmInfo to https://github.com/j-mie6/parsley
130[info] set current project to root (in build file:/build/repo/)
131Execute mapScalacOptions: ,REQUIRE:-source:3.4-migration,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
132[info] Reapplying settings...
133[info] set scmInfo to https://github.com/j-mie6/parsley
134[info] set current project to root (in build file:/build/repo/)
135[info] Defining Global / credentials, credentials and 10 others.
136[info] The new values will be used by Compile / scalafmtOnly, IntegrationTest / scalafmtOnly and 129 others.
137[info] Run `last` for details.
138[info] Reapplying settings...
139[info] set scmInfo to https://github.com/j-mie6/parsley
140[info] set current project to root (in build file:/build/repo/)
141Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
142[info] Reapplying settings...
143OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
144
145 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
146 Did you mean rootJVM / allExcludeDependencies ?
147 , retry without global scopes
148[info] Reapplying settings...
149[info] set scmInfo to https://github.com/j-mie6/parsley
150[info] set current project to root (in build file:/build/repo/)
151Execute removeScalacOptionsStartingWith: -P:wartremover
152[info] Reapplying settings...
153[info] set scmInfo to https://github.com/j-mie6/parsley
154[info] set current project to root (in build file:/build/repo/)
155[success] Total time: 0 s, completed Jan 13, 2026, 4:08:24 PM
156Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.4-migration","migrationVersions":[],"sourcePatches":[{"path":"project/plugins.sbt","pattern":"addSbtPlugin\\(\"pink.cozydev\" % \"protosearch-sbt\" .*\\)","replaceWith":"// $0"},{"path":"build.sbt","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
157Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
158Starting build...
159Projects: Set(parsley, parsleyDebug, unidocs)
160Starting build for ProjectRef(file:/build/repo/,parsley) (parsley)... [0/3]
161OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.4-migration` in Scala 2.12.20 module Global
162OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
163OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
164Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
165[info] compiling 169 Scala sources to /build/repo/parsley/jvm/target/scala-3.8.0/classes ...
166[info] done compiling
167[info] compiling 47 Scala sources to /build/repo/parsley/jvm/target/scala-3.8.0/test-classes ...
168[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CharTests.scala:8:26
169[warn] 8 |import Predef.{ArrowAssoc => _, *}
170[warn] | ^^^^^^^^^^^^^^^
171[warn] | unused import
172[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CombinatorTests.scala:8:26
173[warn] 8 |import Predef.{ArrowAssoc => _, *}
174[warn] | ^^^^^^^^^^^^^^^
175[warn] | unused import
176[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CoreTests.scala:8:26
177[warn] 8 |import Predef.{ArrowAssoc => _, *}
178[warn] | ^^^^^^^^^^^^^^^
179[warn] | unused import
180[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/StringTests.scala:8:26
181[warn] 8 |import Predef.{ArrowAssoc => _, *}
182[warn] | ^^^^^^^^^^^^^^^
183[warn] | unused import
184[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/UnicodeTests.scala:8:26
185[warn] 8 |import Predef.{ArrowAssoc => _, *}
186[warn] | ^^^^^^^^^^^^^^^
187[warn] | unused import
188[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/expr/ExpressionParserTests.scala:8:26
189[warn] 8 |import Predef.{ArrowAssoc => _, *}
190[warn] | ^^^^^^^^^^^^^^^
191[warn] | unused import
192[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/SpaceTests.scala:8:26
193[warn] 8 |import Predef.{ArrowAssoc => _, *}
194[warn] | ^^^^^^^^^^^^^^^
195[warn] | unused import
196[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/TokeniserTests.scala:8:26
197[warn] 8 |import Predef.{ArrowAssoc => _, *}
198[warn] | ^^^^^^^^^^^^^^^
199[warn] | unused import
200[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/names/NamesTests.scala:8:26
201[warn] 8 |import Predef.{ArrowAssoc => _, *}
202[warn] | ^^^^^^^^^^^^^^^
203[warn] | unused import
204[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/RealTests.scala:8:26
205[warn] 8 |import Predef.{ArrowAssoc => _, *}
206[warn] | ^^^^^^^^^^^^^^^
207[warn] | unused import
208[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/SignedIntegerTests.scala:8:26
209[warn] 8 |import Predef.{ArrowAssoc => _, *}
210[warn] | ^^^^^^^^^^^^^^^
211[warn] | unused import
212[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/UnsignedIntegerTests.scala:8:26
213[warn] 8 |import Predef.{ArrowAssoc => _, *}
214[warn] | ^^^^^^^^^^^^^^^
215[warn] | unused import
216[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/symbol/SymbolTests.scala:8:26
217[warn] 8 |import Predef.{ArrowAssoc => _, *}
218[warn] | ^^^^^^^^^^^^^^^
219[warn] | unused import
220[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/CharacterTests.scala:8:32
221[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
222[warn] | ^^^^^^^^^^^^^^^
223[warn] | unused import
224[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/EscapeTests.scala:8:51
225[warn] 8 |import scala.Predef.{String => SString, ArrowAssoc => _, *}
226[warn] | ^^^^^^^^^^^^^^^
227[warn] | unused import
228[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/StringTests.scala:8:32
229[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
230[warn] | ^^^^^^^^^^^^^^^
231[warn] | unused import
232[info] done compiling
233[warn] 16 warnings found
234[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CharTests.scala:8:26
235[warn] 8 |import Predef.{ArrowAssoc => _, *}
236[warn] | ^^^^^^^^^^^^^^^
237[warn] | unused import
238[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/UnsignedIntegerTests.scala:8:26
239[warn] 8 |import Predef.{ArrowAssoc => _, *}
240[warn] | ^^^^^^^^^^^^^^^
241[warn] | unused import
242[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/StringTests.scala:8:26
243[warn] 8 |import Predef.{ArrowAssoc => _, *}
244[warn] | ^^^^^^^^^^^^^^^
245[warn] | unused import
246[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CombinatorTests.scala:8:26
247[warn] 8 |import Predef.{ArrowAssoc => _, *}
248[warn] | ^^^^^^^^^^^^^^^
249[warn] | unused import
250[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/CharacterTests.scala:8:32
251[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
252[warn] | ^^^^^^^^^^^^^^^
253[warn] | unused import
254[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/expr/ExpressionParserTests.scala:8:26
255[warn] 8 |import Predef.{ArrowAssoc => _, *}
256[warn] | ^^^^^^^^^^^^^^^
257[warn] | unused import
258[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/SignedIntegerTests.scala:8:26
259[warn] 8 |import Predef.{ArrowAssoc => _, *}
260[warn] | ^^^^^^^^^^^^^^^
261[warn] | unused import
262[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CoreTests.scala:8:26
263[warn] 8 |import Predef.{ArrowAssoc => _, *}
264[warn] | ^^^^^^^^^^^^^^^
265[warn] | unused import
266[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/symbol/SymbolTests.scala:8:26
267[warn] 8 |import Predef.{ArrowAssoc => _, *}
268[warn] | ^^^^^^^^^^^^^^^
269[warn] | unused import
270[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/UnicodeTests.scala:8:26
271[warn] 8 |import Predef.{ArrowAssoc => _, *}
272[warn] | ^^^^^^^^^^^^^^^
273[warn] | unused import
274[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/TokeniserTests.scala:8:26
275[warn] 8 |import Predef.{ArrowAssoc => _, *}
276[warn] | ^^^^^^^^^^^^^^^
277[warn] | unused import
278[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/RealTests.scala:8:26
279[warn] 8 |import Predef.{ArrowAssoc => _, *}
280[warn] | ^^^^^^^^^^^^^^^
281[warn] | unused import
282[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/EscapeTests.scala:8:51
283[warn] 8 |import scala.Predef.{String => SString, ArrowAssoc => _, *}
284[warn] | ^^^^^^^^^^^^^^^
285[warn] | unused import
286[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/SpaceTests.scala:8:26
287[warn] 8 |import Predef.{ArrowAssoc => _, *}
288[warn] | ^^^^^^^^^^^^^^^
289[warn] | unused import
290[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/StringTests.scala:8:32
291[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
292[warn] | ^^^^^^^^^^^^^^^
293[warn] | unused import
294[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/names/NamesTests.scala:8:26
295[warn] 8 |import Predef.{ArrowAssoc => _, *}
296[warn] | ^^^^^^^^^^^^^^^
297[warn] | unused import
298[warn] 16 warnings found
299[info] InternalTests:
300[info] subroutines
301[info] - should function correctly and be picked up
302[info] - should function correctly under error messages
303[info] - should not duplicate subroutines when error label is the same
304[info] error alternatives for JumpTable
305[info] - should be complete across all branches
306[info] + parsing 'h'
307[info] + parsing 'b'
308[info] + parsing 'a'
309[info] - should contain the default in case of no input
310[info] - should contain the default for mid-points without backtracking
311[info] + parsing 'c'
312[info] + parsing 'd'
313[info] - should be complete when backtracking is disabled
314[info] + parsing 'h'
315[info] + parsing 'g'
316[info] + parsing 'a'
317[info] - should merge properly when more input is consumed in a non-backtracking branch
318[info] + parsing nothing
319[info] + parsing 'a'
320[info] + parsing 'b'
321[info] + parsing 'c'
322[info] JumpTable
323[info] - must not try and commute branches
324[info] tablification
325[info] - should not occur for optional
326[info] PositionTests:
327[info] line
328[info] - should start at 1
329[info] - should increment on newline
330[info] - should not increment on tabs or other chars
331[info] col
332[info] - should start at 1
333[info] - should reset on newline
334[info] - should go to tab boundaries
335[info] - should increment on other chars
336[info] offset
337[info] - should start at 0
338[info] - should only increase by one regardless of character
339[info] withWidth
340[info] - should return 0 for pure things
341[info] - should correctly span input consumption
342[info] UnicodeTests:
343[info] item
344[info] - should accept any character
345[info] - should fail if the input has run out, expecting any character
346[info] space
347[info] - should consume ' ' or ' '
348[info] spaces
349[info] - should consume lots of spaces
350[info] - should never fail
351[info] whitespace
352[info] - should consume any whitespace chars
353[info] endOfLine
354[info] - should consume windows or unix line endings
355[info] - should fail otherwise
356[info] letter
357[info] - should accept non-latin characters
358[info] - should not accept raw high-surrogates but parse supplemental letters
359[info] upper
360[info] - should only accept uppercase characters
361[info] - should fail otherwise
362[info] lower
363[info] - should only accept lowercase characters
364[info] - should fail otherwise
365[info] digit parsers
366[info] - should accept the appropriate characters
367[info] - should fail otherwise
368[info] oneOf
369[info] - should match any of the characters provided
370[info] - should always fail if provided no characters
371[info] - should work for single character ranges too
372[info] noneOf
373[info] - should match none of the characters provided
374[info] - should match anything if provided no characters
375[info] - should work for single character ranges too
376[info] char
377[info] - should handle BMP characters
378[info] - should handle multi-character codepoints
379[info] - should handle multi-character codepoints atomically on fail
380[info] UnsignedIntegerTests:
381[info] unsigned decimal
382[info] - should parse valid decimal numbers of any size
383[info] - should not allow for leading zeros when configured
384[info] - should allow for literal break characters when configured
385[info] - should allow for literal breaks without leading zeros when configured
386[info] - should require at least one digit
387[info] unsigned hexadecimal
388[info] - should parse valid decimal numbers of any size
389[info] - should not allow for leading zeros when configured
390[info] - should allow for literal break characters when configured
391[info] - should allow for literal breaks without leading zeros when configured
392[info] - should not allow for literal break cases after prefix when configured
393[info] - should require at least one digit
394[info] unsigned octal
395[info] - should parse valid decimal numbers of any size
396[info] - should not allow for leading zeros when configured
397[info] - should allow for literal break characters when configured
398[info] - should allow for literal breaks without leading zeros when configured
399[info] - should not allow for literal break cases after prefix when configured
400[info] - should require at least one digit
401[info] unsigned binary
402[info] - should parse valid decimal numbers of any size
403[info] - should not allow for leading zeros when configured
404[info] - should allow for literal break characters when configured
405[info] - should allow for literal breaks without leading zeros when configured
406[info] - should not allow for literal break cases after prefix when configured
407[info] - should require at least one digit
408[info] prefixless numbers
409[info] - should be supported with a leading 0
410[info] number
411[info] - should support any of the different bases
412[info] bounded numbers
413[info] - should also work across any different base
414[info] NamesSemanticPreservationSpec:
415[info] - reading identifiers should not vary based on optimisations
416[info] - reading user-defined operators should not vary based on optimisations
417[info] ResultTests:
418[info] Success
419[info] - should return true for isSuccess
420[info] - should return false for isFailure
421[info] - should not throw an exception on get
422[info] Failure
423[info] - should return false for isSuccess
424[info] - should return true for isFailure
425[info] - should throw an exception on get
426[info] Result[A]
427[info] - should behave like Either[String, A] on success
428[info] - should behave like Either[String, A] on failure
429[info] - should behave like Option[A] when extracting elements
430[info] - should throw an exception when it fails and converted to Try
431[info] - should be convertible to a possibly one element sequence
432[info] - should support contains
433[info] - should support forall
434[info] - should support foreach
435[info] - should flatten correctly
436[info] - should be filterable
437[info] - should be foldable
438[info] StringTests:
439[info] string literals
440[info] - should be allowed to be empty
441[info] - should be allowed to be non-empty
442[info] - should allow for escape sequences
443[info] - should allow for different graphic characters
444[info] - should allow for change in literal end
445[info] - should allow for string gaps when configured
446[info] - should allow for empty characters when configured
447[info] - should allow for no graphical character
448[info] plain string literals
449[info] - should not allow for newlines in the string
450[info] plain utf-16 string literals
451[info] - should parse valid utf-16 strings, even with multiple codepoints
452[info] plain latin string literals
453[info] - should parse valid latin
454[info] - should not accept bmp or other unicode, including in escapes
455[info] plain ascii string literals
456[info] - should parse only valid ascii
457[info] - should not accept latin or unicode, including from escapes
458[info] plain multi-line string literals
459[info] - should parse regular strings
460[info] - should also allow (and preserve) line breaks in the string
461[info] raw string literals
462[info] - should parse regular strings without escapes
463[info] - should not allow for escaped string ends
464[info] - should not allow for line breaks
465[info] - should allow only for a empty-string when no graphic character allowed
466[info] raw multi-line string literals
467[info] - should preserve line breaks in text and not admit escapes
468[info] - should allow for the graphic char to be swapped
469[info] combined strings
470[info] - should allow for for either string with no ambiguity
471[info] ErrorTests:
472[info] mzero parsers
473[info] - should always fail
474[info] label
475[info] - should affect base error messages
476[info] - should work across a recursion boundary
477[info] - should replace everything under the label
478[info] - should not replace hints if input is consumed
479[info] hide
480[info] - should not produce any visible output
481[info] - should suppress hints even if input is consumed
482[info] - should not allow hints to be unsuppressed by another label
483[info] explain
484[info] - should provide a message, but only on failure
485[info] - should not have any effect when more input has been consumed since it was added
486[info] fail
487[info] - should yield a raw message
488[info] - should be flexible when the width is unspecified
489[info] - should dominate otherwise
490[info] unexpected
491[info] - should yield changes to unexpected messages
492[info] - should produce expected message under influence of ?, along with original message
493[info] - should be flexible when the width is unspecified
494[info] - should dominate otherwise
495[info] lookAhead
496[info] - should produce no hints following it
497[info] notFollowedBy
498[info] - should produce no hints
499[info] empty
500[info] - should produce unknown error messages
501[info] - should produce no unknown message under influence of ?
502[info] - should not produce an error message at the end of <|> chain
503[info] - should produce an expected error under influence of ? in <|> chain
504[info] - should have an effect if it's caret is wider
505[info] eof
506[info] - should produce expected end of input
507[info] - should change message under influence of ?
508[info] amend
509[info] - should change error messages under it
510[info] - should not affect input consumption
511[info] entrench
512[info] - should prevent the change of error messages under it
513[info] - should not prevent the action of amend inside it
514[info] dislodge
515[info] - should undo an entrench so that amend works again
516[info] - should not prevent another entrench from occurring
517[info] - should only unwind as many as instructed if applicable
518[info] amendThenDislodge
519[info] - should amend only non-entrenched messages and dislodge those that are
520[info] - should only unwind as many as instructed if applicable
521[info] partialAmend
522[info] - should perform visual amendment but allow for domination
523[info] + a regular amend should lose against even a shallower error
524[info] + a partial amend can win against an error at a lesser offset but greater presentation
525[info] + however, they do not win at equal underlying offset
526[info] oneOf
527[info] - should incorporate range notation into the error
528[info] - should incorporate sets of characters into the error
529[info] noneOf
530[info] - should incorporate range notation into the error
531[info] - should incorporate sets of characters into the error
532[info] verifiedFail
533[info] - should fail having consumed input on the parser success
534[info] - should not consume input if the parser did not succeed
535[info] - should not produce any labels
536[info] verifiedExplain/Unexpected
537[info] - should fail having consumed input on the parser success
538[info] - should not consume input if the parser did not succeed
539[info] - should not produce any labels
540[info] preventativeFail
541[info] - should fail having consumed input on the parser success
542[info] - should not consume input if the parser did not succeed and not fail
543[info] preventativeExplain
544[info] - should fail having consumed input on the parser success
545[info] - should not consume input if the parser did not succeed and not fail
546[info] - should produce labels when specified
547[info] hints
548[info] - should incorporate only with errors at the same offset depth
549[info] VisitorTests:
550[info] - should maintain laziness of the parsers visited
551[info] - should all return the constant unit object from the test visitor
552[info] TokenExtractorTests:
553[info] SingleChar
554[info] - should return a single printable ascii character
555[info] - should handle supplementary unicode characters
556[info] - should deal with whitespace characters by naming them
557[info] - should refuse to print control characters
558[info] - should refuse to print non-printable supplementary characters
559[info] MatchParserDemand
560[info] - should return a single printable ascii character
561[info] - should handle supplementary unicode characters
562[info] - should deal with whitespace characters by naming them
563[info] - should refuse to print control characters
564[info] - should refuse to print non-printable supplementary characters
565[info] TillNextWhitespace
566[info] - should return a single printable ascii character
567[info] - should handle supplementary unicode characters
568[info] - should deal with whitespace characters by naming them
569[info] - should refuse to print control characters
570[info] - should refuse to print non-printable supplementary characters
571[info] LexToken
572[info] - should handle raw input when no token can be matched
573[info] - should stop making raw input when a real token is encountered
574[info] - should never crash when given an incomplete token
575[info] - should not try and parse tokens when in lexical mode
576[info] - should parse tokens when possible
577[info] - should always pick the longest token
578[info] CoreTests:
579[info] Character parsers
580[info] - should fail on no input
581[info] - should fail when given incorrect input
582[info] - should succeed when given correct input
583[info] - must only consume a single character of input at most
584[info] Pure parsers
585[info] - should not require input
586[info] - must result in their correct value
587[info] - must not consume any input
588[info] Fresh parsers
589[info] - should generate unique objects on every run
590[info] - must obey the homomorphism law: pure f <*> pure x = pure (f x)
591[info] - must obey the fmap law: pure f <*> p = f <$> p
592[info] - must obey the interchange law: u <*> pure x = ($x) <$> u
593[info] - must obey the composition law: pure (.) <*> u <*> v <*> w = u <*> (v <*> w)
594[info] lift22
595[info] - must work correctly (and by extension 21-3)
596[info] Selective parsers
597[info] - must obey the selective left-branch law
598[info] - must obey the selective right-branch law
599[info] - must obey the fold law
600[info] Monadic parsers
601[info] - must obey the left identity law: pure x >>= f = f x
602[info] - must obey the right identity law: m >>= pure = m
603[info] - must obey the associativity law: (m >>= f) >>= g = m >>= (x => f x >>= g)
604[info] - must allow for flattening
605[info] branch
606[info] - must work correctly for non-pure components
607[info] <|>
608[info] - should not try the second alternative if the first succeeded
609[info] - should only try second alternative if the first failed without consuming input
610[info] - should not try the second alternative if the first failed after consuming input
611[info] - should not be affected by an empty on the left
612[info] atomic
613[info] - should cause <|> to try second alternative even if input consumed
614[info] notFollowedBy
615[info] - must succeed if p fails
616[info] - must succeed even if p consumed input
617[info] - must fail if p succeeds
618[info] - must behave like empty if provided a parser that consumes no input
619[info] lookAhead
620[info] - should consume no input on success
621[info] - must fail when input is consumed, and input is consumed
622[info] many
623[info] - should crash when given a parser that does not consume input
624[info] stateful parsers
625[info] - should allow for persistent state
626[info] - should be modifiable
627[info] - should provide localised context
628[info] - should be correctly allocated when found inside recursion
629[info] - should be correctly allocated when found inside sub-routines
630[info] - should be preserved by callee-save in flatMap
631[info] - should be preserved by callee-save in flatMap even when it fails
632[info] - should be able to be rolled back if they fail softly
633[info] - should but not roll back if they hard fail
634[info] - should not rollback if successful
635[info] - should support more than 4 registers
636[info] fillReg
637[info] - should appear to create a fresh register every time its invoked
638[info] - should also appear to create a fresh register even in the presence of a hard failure
639[info] ternary parsers
640[info] - should function correctly
641[info] filtered parsers
642[info] - should function correctly
643[info] the collect combinator
644[info] - should act like a filter then a map
645[info] foldRight
646[info] - should work correctly
647[info] foldRight1
648[info] - should work correctly
649[info] foldLeft
650[info] - should work correctly
651[info] foldLeft1
652[info] - should work correctly
653[info] reduceRightOption
654[info] - should return Some on success
655[info] - should return None if there is no p
656[info] reduceLeftOption
657[info] - should return Some on success
658[info] - should return None if there is no p
659[info] stack overflows
660[info] - should not be thrown by recursive parsers
661[info] - should not be caused by bind optimisation
662[info] lazy parsley
663[info] - should be able to prevent overly strict combinators
664[info] overflows
665[info] - should allow for forwarding via the Cont monad
666[info] failures through call boundary
667[info] - should ensure that stateful instructions are restored correctly
668[info] flatMap
669[info] - should consistently generate a callee-save instruction if needed
670[info] span
671[info] - should return all the input parsed by a parser, exactly as it was
672[info] CharTests:
673[info] item
674[info] - should accept any character
675[info] - should fail if the input has run out, expecting any character
676[info] space
677[info] - should consume ' ' or ' '
678[info] spaces
679[info] - should consume lots of spaces
680[info] - should never fail
681[info] whitespace
682[info] - should consume any whitespace chars
683[info] endOfLine
684[info] - should consume windows or unix line endings
685[info] - should fail otherwise
686[info] letter
687[info] - should accept non-latin characters
688[info] - should not accept high surrogates
689[info] satisfyMap
690[info] - should allow for simultaneous mapping and testing
691[info] upper
692[info] - should only accept uppercase characters
693[info] - should fail otherwise
694[info] lower
695[info] - should only accept lowercase characters
696[info] - should fail otherwise
697[info] digit parsers
698[info] - should accept the appropriate characters
699[info] - should fail otherwise
700[info] oneOf
701[info] - should match any of the characters provided
702[info] - should always fail if provided no characters
703[info] - should work for single character ranges too
704[info] noneOf
705[info] - should match none of the characters provided
706[info] - should match anything if provided no characters
707[info] - should work for single character ranges too
708[info] stringOfMany
709[info] - should not cache the builder
710[info] stringOfSome
711[info] - should not cache the builder
712[info] SignedIntegerTests:
713[info] signed decimal
714[info] - should parse valid decimal numbers of any size
715[info] - should not allow for plus when configured
716[info] - should require a plus when configured
717[info] - should require at least one digit
718[info] signed hexadecimal
719[info] - should parse valid decimal numbers of any size
720[info] - should not allow for plus when configured
721[info] - should require a plus when configured
722[info] unsigned octal
723[info] - should parse valid decimal numbers of any size
724[info] - should not allow for plus when configured
725[info] - should require a plus when configured
726[info] unsigned binary
727[info] - should parse valid decimal numbers of any size
728[info] - should not allow for leading zeros when configured
729[info] - should allow for literal break characters when configured
730[info] number
731[info] - should support any of the different bases
732[info] bounded numbers
733[info] - should also work across any different base
734[info] EscapeTests:
735[info] escape characters
736[info] - should handle regular literal escapes
737[info] - should handle a change in opening character
738[info] - should handle single-character mappings
739[info] - should handle multi-character mappings
740[info] - should not deal with empty escapes or gaps
741[info] - should handle decimal escapes
742[info] - should handle octal escapes
743[info] - should handle hexadecimal escapes
744[info] - should handle binary escapes
745[info] ExpressionSemanticPreservationSpec:
746[info] the new precedence implementation
747[info] - should successfully parse basic expressions and not vary based on optimisations
748[info] - should fail to parse basic expressions and not vary based on optimisations
749[info] - should parse expressions with parentheses and not vary based on optimisations
750[info] - should parse chained non-associative operators and not vary based on optimisations
751[info] - should parse random expressions and not vary based on optimisations
752[info] RealTests:
753[info] decimal reals
754[info] - should parse unbounded real numbers
755[info] - should permit leading and trailing dots when applicable
756[info] - should not allow for both leading and trailing dots
757[info] - should not allow for a break past a dot
758[info] - should allow for scientific notation when configured
759[info] - should not allow for blank exponents via leading dot
760[info] - should not allow for integer numbers
761[info] hexadecimal reals
762[info] - should parse unbounded real numbers
763[info] - should allow for scientific notation when configured
764[info] - should not allow for integer numbers
765[info] octal reals
766[info] - should parse unbounded real numbers
767[info] - should allow for scientific notation when configured
768[info] - should not allow for integer numbers
769[info] binary reals
770[info] - should parse unbounded real numbers
771[info] - should allow for scientific notation when configured
772[info] - should not allow for integer numbers
773[info] generic reals
774[info] - should parse in any base
775[info] bounded reals
776[info] - should not permit illegal numbers
777[info] + trying known valid and invalid exact doubles
778[info] + trying known valid and invalid exact floats
779[info] DefuncErrorTests:
780[info] ClassicExpectedError
781[info] - should evaluate to TrivialError
782[info] - should only be empty when its label is
783[info] ClassicExpectedErrorWithReason
784[info] - should evaluate to TrivialError
785[info] - should only be empty when its label is
786[info] ClassicUnexpectedError
787[info] - should evaluate to TrivialError
788[info] - should only be empty when its label is
789[info] - should allow for flexible and rigid carets
790[info] ClassicFancyError
791[info] - should evaluate to FancyError
792[info] - should always be empty
793[info] EmptyError
794[info] - should evaluate to TrivialError
795[info] EmptyErrorWithReason
796[info] - should evaluate to TrivialError
797[info] MergedErrors
798[info] - should be trivial if both children are
799[info] - should be a trivial error if one trivial child is further than the other fancy child
800[info] - should be a fancy error in any other case
801[info] - should be empty when trivial and same offset only when both children are empty
802[info] - should contain all the expecteds from both branches when appropriate
803[info] WithHints
804[info] - should be trivial if its child is
805[info] - should support fancy errors as not trivial
806[info] - should only be empty when its label is
807[info] WithReason
808[info] - should be trivial if its child is
809[info] - should support fancy errors as not trivial
810[info] - should only be empty when its label is
811[info] WithLabel
812[info] - should be trivial if its child is
813[info] - should support fancy errors as not trivial
814[info] - should be empty if the label is empty and not otherwise
815[info] - should replace all expected
816[info] Amended
817[info] - should Change the error position information
818[info] - should work for fancy errors too
819[info] Entrenched
820[info] - should guard against amendment
821[info] - should work for fancy errors too
822[info] Dislodged
823[info] - should remove an entrenchment
824[info] - should work for fancy errors too
825[info] NamesTests:
826[info] identifier
827[info] - should parse valid identifiers
828[info] - should fail to parse valid keywords
829[info] - should point at the correct place for the error
830[info] - should report the correct label
831[info] - should work in the presence of case insensitivity with respect to keywords
832[info] user defined operator
833[info] - should parse valid operators that are not keywords
834[info] - should fail to parse hard operators
835[info] refined identifier
836[info] - should only allow identifiers with the given start characters
837[info] refined operator
838[info] - should only allow operators with the given start characters
839[info] - should only allow operators with the given end characters
840[info] - should be able to constrain both ends
841[info] CoreIOTests:
842[info] parse
843[info] - should work
844[info] - should fail with an error when file does not exist
845[info] DescriptionRequireTests:
846[info] SymbolDesc
847[info] - should not allow an intersection between operators and keywords
848[info] ExponentDesc.Supported
849[info] - should not allow for empty exponents
850[info] NumericDesc
851[info] - should not allow for multiple prefixless descriptions
852[info] - should not rule out valid configurations
853[info] - should not allow for leading zeros if there is a prefixless description
854[info] NumberOfDigits.AtMost
855[info] - should not allow for 0 or negative numbers of digits
856[info] NumberOfDigits.Exactly
857[info] - should not allow for 0 or negative numebrs of digits
858[info] EscapeDesc
859[info] - should not allow for empty string escapes
860[info] - should not permit ambiguity with the different mappings
861[info] - should not allow for constant escapes that aren't valid characters
862[info] TextDesc
863[info] - should not allow for string literals without ends
864[info] FilterTests:
865[info] filtering parsers
866[info] - should function correctly
867[info] the collect/mapFilter combinators
868[info] - should act like a filter then a map
869[info] filterOut
870[info] - should not corrupt the stack under a handler
871[info] partial functions within filters
872[info] - should not be evaluated twice
873[info] + filterOut
874[info] + unexpectedWhen
875[info] + unexpectedWithReasonWhen
876[info] + collectMsg
877[info] + guardAgainst
878[info] + mapFilterMsg
879[info] EscapeSemanticPreservationSpec:
880[info] - reading escape characters should not vary based on optimisations
881[info] DefuncHintsTests:
882[info] EmptyHints
883[info] - should have size 0
884[info] - should yield an empty set
885[info] AddError
886[info] - should should increase the size
887[info] ReplaceHint
888[info] - should do nothing on empty
889[info] - should replace the hints under it
890[info] MergeHints
891[info] - should ensure all elements from both hints
892[info] StringTests:
893[info] string
894[info] - should consume succeed if it is found at head
895[info] - should not consume input if it fails on first character
896[info] - should consume input if it fails mid-string
897[info] - should not consume input if it fails mid-string when combined with atomic
898[info] - should update positions correctly
899[info] - should respect multiple tabs
900[info] - should reject the empty string
901[info] strings
902[info] - should have longest match behaviour
903[info] - should be extrinsically the same as a manual equivalent
904[info] + parsing "hello"
905[info] + parsing "hell"
906[info] + parsing "h"
907[info] + parsing "a"
908[info] + parsing "b"
909[info] character.stringOfMany
910[info] - should allow for no letters
911[info] - should consume as many letters as it can
912[info] - should fail if pc fails having consumed input
913[info] character.stringOfSome
914[info] - should not allow for no letters
915[info] - should consume as many letters as it can
916[info] - should fail if pc fails having consumed input
917[info] unicode.stringOfMany
918[info] - should allow for no letters
919[info] - should consume as many letters as it can
920[info] - should fail if pc fails having consumed input
921[info] unicode.stringOfSome
922[info] - should not allow for no letters
923[info] - should consume as many letters as it can
924[info] - should fail if pc fails having consumed input
925[info] ProfilerTests:
926[info] The profiler
927[info] - should handle sequential entries and exits
928[info] - should handle recursive entries
929[info] - should handle mutually recursive entries
930[info] - should handle mixed iterative and recursive entries
931[info] - should handle mixed iterative and self-recursive entries
932[info] SpaceTests:
933[info] whiteSpace
934[info] - should parse spaces when no comments are defined
935[info] - should supported unicode definition
936[info] - should parse spaces and line comments when defined
937[info] - should parse spaces and multi-line comment when defined
938[info] - should parse spaces and mixed comments when defined
939[info] - should be skipComments with no whitespace allowed
940[info] - should allow for line comments to end in EOF
941[info] - should or not allow EOF
942[info] - should parse nested comments when applicable
943[info] - should not parse nested comments when applicable
944[info] skipComments
945[info] - should parse single-line comments
946[info] - should parse multi-line comments
947[info] - should parse mixed comments
948[info] - should parse nested comments when applicable
949[info] - should not parse nested comments when applicable
950[info] - should do nothing with no comments
951[info] - should allow for line comments to end in EOF
952[info] - should or not allow EOF
953[info] - should not aggressively eat everything
954[info] context-dependent whitespace
955[info] - must be initialised
956[info] init
957[info] - should initialise the space so it can be used
958[info] - should initialise space to the default space definition
959[info] - should not work if context-dependent whitespace is off
960[info] alter
961[info] - should not work if context-dependent whitespace is off
962[info] - should temporarily alter how whitespace is parsed
963[info] - should not restore old whitespace if the given parser fails having consumed input
964[info] fully
965[info] - should parse leading whitespace and ensure eof
966[info] - should initialise dependent whitespace
967[info] unicode spaces
968[info] - should not revive dead hints
969[info] TrieSpec:
970[info] - a Trie constructed from a set should contain all of its elements
971[info] - a Trie constructed from a set should not contain extra keys
972[info] CombinatorTests:
973[info] choice
974[info] - should fail if given the empty list
975[info] - should behave like p for List(p)
976[info] - should parse in order
977[info] - should fail if none of the parsers succeed
978[info] atomicChoice
979[info] - should correctly ensure the subparsers backtrack
980[info] exactly
981[info] - should parse n times for n > 0
982[info] - must fail if n inputs are not present
983[info] option
984[info] - should succeed with Some if p succeeds
985[info] - should succeed with None if p fails without consumption
986[info] - should fail if p fails with consumption
987[info] decide
988[info] - must succeed for Some
989[info] - must fail for None
990[info] - must succeed for None with an alternative
991[info] - must compose with option to become identity
992[info] optional
993[info] - must succeed if p succeeds
994[info] - must also succeed if p fails without consumption
995[info] - must fail if p failed with consumption
996[info] manyN
997[info] - must ensure that n are parsed
998[info] - should not care if more are present
999[info] sepBy
1000[info] - must accept empty input
1001[info] - must not allow sep at the end of chain
1002[info] - should be able to parse 2 or more p
1003[info] sepBy1
1004[info] - must require a p
1005[info] sepEndBy
1006[info] - must accept empty input
1007[info] - should not require sep at the end of chain
1008[info] - should be able to parse 2 or more p
1009[info] - should be able to parse a final sep
1010[info] - should fail if p fails after consuming input
1011[info] - should fail if sep fails after consuming input
1012[info] - must not corrupt the stack on sep hard-fail
1013[info] sepEndBy1
1014[info] - must require a p
1015[info] endBy
1016[info] - must accept empty input
1017[info] - must require sep at end of chain
1018[info] - should be able to parse 2 or more p
1019[info] endBy1
1020[info] - must require a p
1021[info] eof
1022[info] - must succeed at the end of input
1023[info] - must fail if input remains
1024[info] manyTill
1025[info] - must require an end
1026[info] - should parse the end without result
1027[info] - should parse p until that end is found
1028[info] someTill
1029[info] - must parse at least 1 p
1030[info] forYieldP
1031[info] - should be able to parse context-sensitive grammars
1032[info] forYieldP_
1033[info] - should be able to parse context-sensitive grammars
1034[info] count
1035[info] - should report how many successful parses occurred
1036[info] - should not allow partial results
1037[info] - should allow for ranges
1038[info] range
1039[info] - should collect results up instead of count
1040[info] ExpressionParserTests:
1041[info] chain.postfix
1042[info] - must require an initial value
1043[info] - must parse all operators that follow
1044[info] - must apply the functions
1045[info] - must fail if an operator fails after consuming input
1046[info] - must not leave the stack in an inconsistent state on failure
1047[info] chain.postfix1
1048[info] - must require and initial value AND an initial operator
1049[info] - must parse all operators that follow
1050[info] - must apply the functions
1051[info] - must fail if an operator fails after consuming input
1052[info] chain.prefix
1053[info] - must parse an operatorless value
1054[info] - must parse all operators that precede a value
1055[info] - must fail if the final value is absent
1056[info] - must apply the functions
1057[info] chain.prefix1
1058[info] - must not parse an operatorless value
1059[info] - must parse all operators that precede a value
1060[info] - must fail if the final value is absent
1061[info] - must apply the functions
1062[info] chain.right1
1063[info] - must require an initial value
1064[info] - must parse all operators and values that follow
1065[info] - must apply the functions with correct associativity
1066[info] - must fail if an operator or p fails after consuming input
1067[info] - must correctly accept the use of a wrapping function
1068[info] chain.right
1069[info] - must allow for no initial value
1070[info] chain.left1
1071[info] - must require an initial value
1072[info] - must parse all operators and values that follow
1073[info] - must apply the functions with correct associativity
1074[info] - must fail if an operator fails after consuming input
1075[info] - must not leave the stack in an inconsistent state on failure
1076[info] - must correctly accept the use of a wrapping function
1077[info] chain.left
1078[info] - must allow for no initial value
1079[info] expression parsers
1080[info] - should result in correct precedence
1081[info] - should work for multiple operators at the same level
1082[info] - should work for mixed associativity operators
1083[info] - should parse mathematical expressions
1084[info] - should parse prefix operators mixed with infix operators
1085[info] - should be able to parse prefix operators weaker than an infix
1086[info] - should generalise to sub-typed structures
1087[info] - should generalise to non-monolithic structures
1088[info] - should generalise to non-monolithic structures with more than one chainl1
1089[info] mixed expressions
1090[info] - should also be parsable
1091[info] mixed chains
1092[info] - should allow the mixing of prefix with infix-right
1093[info] - should allow the mixing of postfix with infix-left
1094[info] TokeniserTests:
1095[info] semiSep
1096[info] - should parse semi-colon separated values
1097[info] semiSep1
1098[info] - should parse semi-colon separated values
1099[info] commaSep
1100[info] - should parse comma separated values
1101[info] commaSep1
1102[info] - should parse comma separated values
1103[info] parens
1104[info] - should parse values within parentheses
1105[info] braces
1106[info] - should parse values within braces
1107[info] angles
1108[info] - should parse values within angle brackets
1109[info] brackets
1110[info] - should parse values within square brackets
1111[info] naturalOrFloat
1112[info] - should parse either naturals or unsigned floats
1113[info] - should not allow hexadecimal floats without the exponent
1114[info] - should not allow octal floats without the exponent
1115[info] number
1116[info] - should parse integers or floats
1117[info] SymbolTests:
1118[info] soft keywords
1119[info] - should parse even when not in the keyword set
1120[info] - should parse full utf-16
1121[info] - should be able to be case-insensitive
1122[info] - should not consumed input when they fail
1123[info] - should not be affected by tablification optimisation
1124[info] soft operators
1125[info] - should parse even when not in the operators set
1126[info] - should not consume input when they fail
1127[info] symbols
1128[info] - should be parsed according to category
1129[info] CharacterTests:
1130[info] character literals
1131[info] - should require end char
1132[info] - should parse any defined "graphic character"
1133[info] - should be able to parse escape sequences too
1134[info] - should not allow for string gaps or empty characters
1135[info] - should be able to set the literal end char
1136[info] - should handle empty graphic chars, by parsing escape sequences
1137[info] full utf-16 literals
1138[info] - should parse any valid single code-point
1139[info] - should not parse multi-code point characters
1140[info] basic multi-lingual plane literals
1141[info] - should parse any valid bmp code-point
1142[info] - should not parse wider unicode, including from escape characters
1143[info] - should also behave similarly when given a non-unicode predicate
1144[info] extended-ascii literals
1145[info] - should parse any valid extended ascii code-point
1146[info] - should not parse other utf-16 characters, including from escape sequences
1147[info] ascii literals
1148[info] - should parse any valid ascii code-point
1149[info] - should not parse other utf-16 characters, including from escape sequences
1150[info] SymbolSemanticPreservationSpec:
1151[info] - reading keywords should not vary based on optimisations
1152[info] - reading operators should not vary based on optimisations
1153[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CharTests.scala:8:26
1154[warn] 8 |import Predef.{ArrowAssoc => _, *}
1155[warn] | ^^^^^^^^^^^^^^^
1156[warn] | unused import
1157[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/UnsignedIntegerTests.scala:8:26
1158[warn] 8 |import Predef.{ArrowAssoc => _, *}
1159[warn] | ^^^^^^^^^^^^^^^
1160[warn] | unused import
1161[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/StringTests.scala:8:26
1162[warn] 8 |import Predef.{ArrowAssoc => _, *}
1163[warn] | ^^^^^^^^^^^^^^^
1164[warn] | unused import
1165[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CombinatorTests.scala:8:26
1166[warn] 8 |import Predef.{ArrowAssoc => _, *}
1167[warn] | ^^^^^^^^^^^^^^^
1168[warn] | unused import
1169[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/CharacterTests.scala:8:32
1170[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1171[warn] | ^^^^^^^^^^^^^^^
1172[warn] | unused import
1173[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/expr/ExpressionParserTests.scala:8:26
1174[warn] 8 |import Predef.{ArrowAssoc => _, *}
1175[warn] | ^^^^^^^^^^^^^^^
1176[warn] | unused import
1177[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/SignedIntegerTests.scala:8:26
1178[warn] 8 |import Predef.{ArrowAssoc => _, *}
1179[warn] | ^^^^^^^^^^^^^^^
1180[warn] | unused import
1181[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CoreTests.scala:8:26
1182[warn] 8 |import Predef.{ArrowAssoc => _, *}
1183[warn] | ^^^^^^^^^^^^^^^
1184[warn] | unused import
1185[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/symbol/SymbolTests.scala:8:26
1186[warn] 8 |import Predef.{ArrowAssoc => _, *}
1187[warn] | ^^^^^^^^^^^^^^^
1188[warn] | unused import
1189[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/UnicodeTests.scala:8:26
1190[warn] 8 |import Predef.{ArrowAssoc => _, *}
1191[warn] | ^^^^^^^^^^^^^^^
1192[warn] | unused import
1193[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/TokeniserTests.scala:8:26
1194[warn] 8 |import Predef.{ArrowAssoc => _, *}
1195[warn] | ^^^^^^^^^^^^^^^
1196[warn] | unused import
1197[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/RealTests.scala:8:26
1198[warn] 8 |import Predef.{ArrowAssoc => _, *}
1199[warn] | ^^^^^^^^^^^^^^^
1200[warn] | unused import
1201[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/EscapeTests.scala:8:51
1202[warn] 8 |import scala.Predef.{String => SString, ArrowAssoc => _, *}
1203[warn] | ^^^^^^^^^^^^^^^
1204[warn] | unused import
1205[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/SpaceTests.scala:8:26
1206[warn] 8 |import Predef.{ArrowAssoc => _, *}
1207[warn] | ^^^^^^^^^^^^^^^
1208[warn] | unused import
1209[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/StringTests.scala:8:32
1210[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1211[warn] | ^^^^^^^^^^^^^^^
1212[warn] | unused import
1213[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/names/NamesTests.scala:8:26
1214[warn] 8 |import Predef.{ArrowAssoc => _, *}
1215[warn] | ^^^^^^^^^^^^^^^
1216[warn] | unused import
1217[warn] 16 warnings found
1218[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CharTests.scala:8:26
1219[warn] 8 |import Predef.{ArrowAssoc => _, *}
1220[warn] | ^^^^^^^^^^^^^^^
1221[warn] | unused import
1222[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/UnsignedIntegerTests.scala:8:26
1223[warn] 8 |import Predef.{ArrowAssoc => _, *}
1224[warn] | ^^^^^^^^^^^^^^^
1225[warn] | unused import
1226[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/StringTests.scala:8:26
1227[warn] 8 |import Predef.{ArrowAssoc => _, *}
1228[warn] | ^^^^^^^^^^^^^^^
1229[warn] | unused import
1230[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CombinatorTests.scala:8:26
1231[warn] 8 |import Predef.{ArrowAssoc => _, *}
1232[warn] | ^^^^^^^^^^^^^^^
1233[warn] | unused import
1234[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/CharacterTests.scala:8:32
1235[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1236[warn] | ^^^^^^^^^^^^^^^
1237[warn] | unused import
1238[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/expr/ExpressionParserTests.scala:8:26
1239[warn] 8 |import Predef.{ArrowAssoc => _, *}
1240[warn] | ^^^^^^^^^^^^^^^
1241[warn] | unused import
1242[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/SignedIntegerTests.scala:8:26
1243[warn] 8 |import Predef.{ArrowAssoc => _, *}
1244[warn] | ^^^^^^^^^^^^^^^
1245[warn] | unused import
1246[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CoreTests.scala:8:26
1247[warn] 8 |import Predef.{ArrowAssoc => _, *}
1248[warn] | ^^^^^^^^^^^^^^^
1249[warn] | unused import
1250[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/symbol/SymbolTests.scala:8:26
1251[warn] 8 |import Predef.{ArrowAssoc => _, *}
1252[warn] | ^^^^^^^^^^^^^^^
1253[warn] | unused import
1254[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/UnicodeTests.scala:8:26
1255[warn] 8 |import Predef.{ArrowAssoc => _, *}
1256[warn] | ^^^^^^^^^^^^^^^
1257[warn] | unused import
1258[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/TokeniserTests.scala:8:26
1259[warn] 8 |import Predef.{ArrowAssoc => _, *}
1260[warn] | ^^^^^^^^^^^^^^^
1261[warn] | unused import
1262[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/RealTests.scala:8:26
1263[warn] 8 |import Predef.{ArrowAssoc => _, *}
1264[warn] | ^^^^^^^^^^^^^^^
1265[warn] | unused import
1266[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/EscapeTests.scala:8:51
1267[warn] 8 |import scala.Predef.{String => SString, ArrowAssoc => _, *}
1268[warn] | ^^^^^^^^^^^^^^^
1269[warn] | unused import
1270[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/SpaceTests.scala:8:26
1271[warn] 8 |import Predef.{ArrowAssoc => _, *}
1272[warn] | ^^^^^^^^^^^^^^^
1273[warn] | unused import
1274[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/StringTests.scala:8:32
1275[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1276[warn] | ^^^^^^^^^^^^^^^
1277[warn] | unused import
1278[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/names/NamesTests.scala:8:26
1279[warn] 8 |import Predef.{ArrowAssoc => _, *}
1280[warn] | ^^^^^^^^^^^^^^^
1281[warn] | unused import
1282[warn] 16 warnings found
1283Starting build for ProjectRef(file:/build/repo/,parsleyDebug) (parsley-debug)... [1/3]
1284Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
1285[info] compiling 24 Scala sources to /build/repo/parsley-debug/jvm/target/scala-3.8.0/classes ...
1286[warn] there was 1 deprecation warning; re-run with -deprecation for details
1287[info] done compiling
1288[warn] one warning found
1289[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CharTests.scala:8:26
1290[warn] 8 |import Predef.{ArrowAssoc => _, *}
1291[warn] | ^^^^^^^^^^^^^^^
1292[warn] | unused import
1293[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/UnsignedIntegerTests.scala:8:26
1294[warn] 8 |import Predef.{ArrowAssoc => _, *}
1295[warn] | ^^^^^^^^^^^^^^^
1296[warn] | unused import
1297[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/StringTests.scala:8:26
1298[warn] 8 |import Predef.{ArrowAssoc => _, *}
1299[warn] | ^^^^^^^^^^^^^^^
1300[warn] | unused import
1301[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CombinatorTests.scala:8:26
1302[warn] 8 |import Predef.{ArrowAssoc => _, *}
1303[warn] | ^^^^^^^^^^^^^^^
1304[warn] | unused import
1305[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/CharacterTests.scala:8:32
1306[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1307[warn] | ^^^^^^^^^^^^^^^
1308[warn] | unused import
1309[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/expr/ExpressionParserTests.scala:8:26
1310[warn] 8 |import Predef.{ArrowAssoc => _, *}
1311[warn] | ^^^^^^^^^^^^^^^
1312[warn] | unused import
1313[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/SignedIntegerTests.scala:8:26
1314[warn] 8 |import Predef.{ArrowAssoc => _, *}
1315[warn] | ^^^^^^^^^^^^^^^
1316[warn] | unused import
1317[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CoreTests.scala:8:26
1318[warn] 8 |import Predef.{ArrowAssoc => _, *}
1319[warn] | ^^^^^^^^^^^^^^^
1320[warn] | unused import
1321[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/symbol/SymbolTests.scala:8:26
1322[warn] 8 |import Predef.{ArrowAssoc => _, *}
1323[warn] | ^^^^^^^^^^^^^^^
1324[warn] | unused import
1325[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/UnicodeTests.scala:8:26
1326[warn] 8 |import Predef.{ArrowAssoc => _, *}
1327[warn] | ^^^^^^^^^^^^^^^
1328[warn] | unused import
1329[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/TokeniserTests.scala:8:26
1330[warn] 8 |import Predef.{ArrowAssoc => _, *}
1331[warn] | ^^^^^^^^^^^^^^^
1332[warn] | unused import
1333[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/RealTests.scala:8:26
1334[warn] 8 |import Predef.{ArrowAssoc => _, *}
1335[warn] | ^^^^^^^^^^^^^^^
1336[warn] | unused import
1337[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/EscapeTests.scala:8:51
1338[warn] 8 |import scala.Predef.{String => SString, ArrowAssoc => _, *}
1339[warn] | ^^^^^^^^^^^^^^^
1340[warn] | unused import
1341[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/SpaceTests.scala:8:26
1342[warn] 8 |import Predef.{ArrowAssoc => _, *}
1343[warn] | ^^^^^^^^^^^^^^^
1344[warn] | unused import
1345[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/StringTests.scala:8:32
1346[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1347[warn] | ^^^^^^^^^^^^^^^
1348[warn] | unused import
1349[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/names/NamesTests.scala:8:26
1350[warn] 8 |import Predef.{ArrowAssoc => _, *}
1351[warn] | ^^^^^^^^^^^^^^^
1352[warn] | unused import
1353[warn] 16 warnings found
1354[info] compiling 7 Scala sources to /build/repo/parsley-debug/jvm/target/scala-3.8.0/test-classes ...
1355[info] done compiling
1356[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CharTests.scala:8:26
1357[warn] 8 |import Predef.{ArrowAssoc => _, *}
1358[warn] | ^^^^^^^^^^^^^^^
1359[warn] | unused import
1360[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/UnsignedIntegerTests.scala:8:26
1361[warn] 8 |import Predef.{ArrowAssoc => _, *}
1362[warn] | ^^^^^^^^^^^^^^^
1363[warn] | unused import
1364[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/StringTests.scala:8:26
1365[warn] 8 |import Predef.{ArrowAssoc => _, *}
1366[warn] | ^^^^^^^^^^^^^^^
1367[warn] | unused import
1368[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CombinatorTests.scala:8:26
1369[warn] 8 |import Predef.{ArrowAssoc => _, *}
1370[warn] | ^^^^^^^^^^^^^^^
1371[warn] | unused import
1372[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/CharacterTests.scala:8:32
1373[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1374[warn] | ^^^^^^^^^^^^^^^
1375[warn] | unused import
1376[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/expr/ExpressionParserTests.scala:8:26
1377[warn] 8 |import Predef.{ArrowAssoc => _, *}
1378[warn] | ^^^^^^^^^^^^^^^
1379[warn] | unused import
1380[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/SignedIntegerTests.scala:8:26
1381[warn] 8 |import Predef.{ArrowAssoc => _, *}
1382[warn] | ^^^^^^^^^^^^^^^
1383[warn] | unused import
1384[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CoreTests.scala:8:26
1385[warn] 8 |import Predef.{ArrowAssoc => _, *}
1386[warn] | ^^^^^^^^^^^^^^^
1387[warn] | unused import
1388[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/symbol/SymbolTests.scala:8:26
1389[warn] 8 |import Predef.{ArrowAssoc => _, *}
1390[warn] | ^^^^^^^^^^^^^^^
1391[warn] | unused import
1392[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/UnicodeTests.scala:8:26
1393[warn] 8 |import Predef.{ArrowAssoc => _, *}
1394[warn] | ^^^^^^^^^^^^^^^
1395[warn] | unused import
1396[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/TokeniserTests.scala:8:26
1397[warn] 8 |import Predef.{ArrowAssoc => _, *}
1398[warn] | ^^^^^^^^^^^^^^^
1399[warn] | unused import
1400[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/RealTests.scala:8:26
1401[warn] 8 |import Predef.{ArrowAssoc => _, *}
1402[warn] | ^^^^^^^^^^^^^^^
1403[warn] | unused import
1404[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/EscapeTests.scala:8:51
1405[warn] 8 |import scala.Predef.{String => SString, ArrowAssoc => _, *}
1406[warn] | ^^^^^^^^^^^^^^^
1407[warn] | unused import
1408[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/SpaceTests.scala:8:26
1409[warn] 8 |import Predef.{ArrowAssoc => _, *}
1410[warn] | ^^^^^^^^^^^^^^^
1411[warn] | unused import
1412[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/StringTests.scala:8:32
1413[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1414[warn] | ^^^^^^^^^^^^^^^
1415[warn] | unused import
1416[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/names/NamesTests.scala:8:26
1417[warn] 8 |import Predef.{ArrowAssoc => _, *}
1418[warn] | ^^^^^^^^^^^^^^^
1419[warn] | unused import
1420[warn] 16 warnings found
1421[info] RenameSpec:
1422[info] the Renamer object
1423[info] - should not rename a parser it does not know of
1424[info] - should rename a parser it is aware of
1425[info] - should translate a symbolic parser's name
1426[info] - should pass through Debugged parsers and get the inner parser's name
1427[info] - should override a known name if a parser is named.
1428[info] + the current platform does not support Collector
1429[info] - should collect names of parsers from lexers (on supported platforms)
1430[info] ReuseSpec:
1431[info] the DebugView class and its re-usability / single-use enforcement
1432[info] - should throw when run multiple times, only if the view is marked as single-use
1433[info] + it should not throw when running a reusable frontend multiple times
1434[info] + it should throw when running a single-use frontend multiple times
1435[info] + single-use frontend has thrown after being run multiple times, as expected
1436[info] AnnotationTest:
1437[info] parsley.debuggable
1438[info] - should fill in the names for objects
1439[info] - should fill in the names for classes
1440[info] DebuggerUsageSpec:
1441[info] the Debugged internal frontend class
1442[info] - should not allow nesting of Debugged nodes
1443[info] + assertion exception thrown, as expected
1444[info] - should preserve the prettified names of the parsers
1445[info] the debugger runtime
1446[info] - should preserve the result of parsers
1447[info] - should not cause references to be unallocated
1448[info] - should preserve the side-effecting behaviour of parsers
1449[info] - should store the children, representing the paths the parse-time execution took
1450[info] - should factor out inputs of child parsers
1451[info] RemoteBreakSpec:
1452[info] Remote breakpoint
1453[info] - should break before input is consumed on EntryBreak
1454[info] - should break after input is consumed on ExitBreak
1455[info] - should call renderWait after hitting a breakpoint
1456[info] - should not break when given NoBreak
1457[info] - should break twice when given FullBreak
1458[info] - should skip one breakpoint
1459[info] - should skip breakpoints many times
1460[info] - should skip many breakpoints at once
1461[info] - should never break if the parser wasn't reached
1462[info] - should break many times with iterative combinators
1463[info] - should stay silent after skipping more breakpoints than there are
1464[info] - should skip indefinitely with the special case of -1
1465[info] - should preserve references that aren't passed to break
1466[info] - should preserve references that are passed in and not returned
1467[info] - should modify Ref[String]
1468[info] - should modify Ref[Char]
1469[info] - should modify Ref[Boolean]
1470[info] - should modify Ref[Byte]
1471[info] - should modify Ref[Short]
1472[info] - should modify Ref[Int]
1473[info] - should modify Ref[Long]
1474[info] - should modify Ref[Float]
1475[info] - should modify Ref[Double]
1476[info] - should modify the same reference many times
1477[info] - should modify multiple references at the same time of different types
1478[info] - should modify correctly with EntryBreak
1479[info] TotalAttachmentSpec:
1480[info] the debug node attachment visitor
1481[info] - should attach debuggers to all opaque nodes of a parser and not otherwise
1482[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CharTests.scala:8:26
1483[warn] 8 |import Predef.{ArrowAssoc => _, *}
1484[warn] | ^^^^^^^^^^^^^^^
1485[warn] | unused import
1486[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/UnsignedIntegerTests.scala:8:26
1487[warn] 8 |import Predef.{ArrowAssoc => _, *}
1488[warn] | ^^^^^^^^^^^^^^^
1489[warn] | unused import
1490[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/StringTests.scala:8:26
1491[warn] 8 |import Predef.{ArrowAssoc => _, *}
1492[warn] | ^^^^^^^^^^^^^^^
1493[warn] | unused import
1494[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CombinatorTests.scala:8:26
1495[warn] 8 |import Predef.{ArrowAssoc => _, *}
1496[warn] | ^^^^^^^^^^^^^^^
1497[warn] | unused import
1498[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/CharacterTests.scala:8:32
1499[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1500[warn] | ^^^^^^^^^^^^^^^
1501[warn] | unused import
1502[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/expr/ExpressionParserTests.scala:8:26
1503[warn] 8 |import Predef.{ArrowAssoc => _, *}
1504[warn] | ^^^^^^^^^^^^^^^
1505[warn] | unused import
1506[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/SignedIntegerTests.scala:8:26
1507[warn] 8 |import Predef.{ArrowAssoc => _, *}
1508[warn] | ^^^^^^^^^^^^^^^
1509[warn] | unused import
1510[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CoreTests.scala:8:26
1511[warn] 8 |import Predef.{ArrowAssoc => _, *}
1512[warn] | ^^^^^^^^^^^^^^^
1513[warn] | unused import
1514[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/symbol/SymbolTests.scala:8:26
1515[warn] 8 |import Predef.{ArrowAssoc => _, *}
1516[warn] | ^^^^^^^^^^^^^^^
1517[warn] | unused import
1518[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/UnicodeTests.scala:8:26
1519[warn] 8 |import Predef.{ArrowAssoc => _, *}
1520[warn] | ^^^^^^^^^^^^^^^
1521[warn] | unused import
1522[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/TokeniserTests.scala:8:26
1523[warn] 8 |import Predef.{ArrowAssoc => _, *}
1524[warn] | ^^^^^^^^^^^^^^^
1525[warn] | unused import
1526[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/RealTests.scala:8:26
1527[warn] 8 |import Predef.{ArrowAssoc => _, *}
1528[warn] | ^^^^^^^^^^^^^^^
1529[warn] | unused import
1530[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/EscapeTests.scala:8:51
1531[warn] 8 |import scala.Predef.{String => SString, ArrowAssoc => _, *}
1532[warn] | ^^^^^^^^^^^^^^^
1533[warn] | unused import
1534[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/SpaceTests.scala:8:26
1535[warn] 8 |import Predef.{ArrowAssoc => _, *}
1536[warn] | ^^^^^^^^^^^^^^^
1537[warn] | unused import
1538[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/StringTests.scala:8:32
1539[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1540[warn] | ^^^^^^^^^^^^^^^
1541[warn] | unused import
1542[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/names/NamesTests.scala:8:26
1543[warn] 8 |import Predef.{ArrowAssoc => _, *}
1544[warn] | ^^^^^^^^^^^^^^^
1545[warn] | unused import
1546[warn] 16 warnings found
1547[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CharTests.scala:8:26
1548[warn] 8 |import Predef.{ArrowAssoc => _, *}
1549[warn] | ^^^^^^^^^^^^^^^
1550[warn] | unused import
1551[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/UnsignedIntegerTests.scala:8:26
1552[warn] 8 |import Predef.{ArrowAssoc => _, *}
1553[warn] | ^^^^^^^^^^^^^^^
1554[warn] | unused import
1555[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/StringTests.scala:8:26
1556[warn] 8 |import Predef.{ArrowAssoc => _, *}
1557[warn] | ^^^^^^^^^^^^^^^
1558[warn] | unused import
1559[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CombinatorTests.scala:8:26
1560[warn] 8 |import Predef.{ArrowAssoc => _, *}
1561[warn] | ^^^^^^^^^^^^^^^
1562[warn] | unused import
1563[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/CharacterTests.scala:8:32
1564[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1565[warn] | ^^^^^^^^^^^^^^^
1566[warn] | unused import
1567[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/expr/ExpressionParserTests.scala:8:26
1568[warn] 8 |import Predef.{ArrowAssoc => _, *}
1569[warn] | ^^^^^^^^^^^^^^^
1570[warn] | unused import
1571[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/SignedIntegerTests.scala:8:26
1572[warn] 8 |import Predef.{ArrowAssoc => _, *}
1573[warn] | ^^^^^^^^^^^^^^^
1574[warn] | unused import
1575[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/CoreTests.scala:8:26
1576[warn] 8 |import Predef.{ArrowAssoc => _, *}
1577[warn] | ^^^^^^^^^^^^^^^
1578[warn] | unused import
1579[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/symbol/SymbolTests.scala:8:26
1580[warn] 8 |import Predef.{ArrowAssoc => _, *}
1581[warn] | ^^^^^^^^^^^^^^^
1582[warn] | unused import
1583[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/UnicodeTests.scala:8:26
1584[warn] 8 |import Predef.{ArrowAssoc => _, *}
1585[warn] | ^^^^^^^^^^^^^^^
1586[warn] | unused import
1587[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/TokeniserTests.scala:8:26
1588[warn] 8 |import Predef.{ArrowAssoc => _, *}
1589[warn] | ^^^^^^^^^^^^^^^
1590[warn] | unused import
1591[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/numeric/RealTests.scala:8:26
1592[warn] 8 |import Predef.{ArrowAssoc => _, *}
1593[warn] | ^^^^^^^^^^^^^^^
1594[warn] | unused import
1595[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/EscapeTests.scala:8:51
1596[warn] 8 |import scala.Predef.{String => SString, ArrowAssoc => _, *}
1597[warn] | ^^^^^^^^^^^^^^^
1598[warn] | unused import
1599[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/SpaceTests.scala:8:26
1600[warn] 8 |import Predef.{ArrowAssoc => _, *}
1601[warn] | ^^^^^^^^^^^^^^^
1602[warn] | unused import
1603[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/text/StringTests.scala:8:32
1604[warn] 8 |import scala.Predef.{ArrowAssoc => _, *}
1605[warn] | ^^^^^^^^^^^^^^^
1606[warn] | unused import
1607[warn] -- [E198] Unused Symbol Warning: /build/repo/parsley/shared/src/test/scala/parsley/token/names/NamesTests.scala:8:26
1608[warn] 8 |import Predef.{ArrowAssoc => _, *}
1609[warn] | ^^^^^^^^^^^^^^^
1610[warn] | unused import
1611[warn] 16 warnings found
1612Starting build for ProjectRef(file:/build/repo/,unidocs) (parsley-docs)... [2/3]
1613Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
1614
1615************************
1616Build summary:
1617[{
1618 "module": "parsley",
1619 "compile": {"status": "ok", "tookMs": 28124, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
1620 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1621 "test-compile": {"status": "ok", "tookMs": 21865, "warnings": 16, "errors": 0, "sourceVersion": "3.4-migration"},
1622 "test": {"status": "ok", "tookMs": 2543, "passed": 575, "failed": 0, "ignored": 0, "skipped": 0, "total": 575, "byFramework": [{"framework": "unknown", "stats": {"passed": 575, "failed": 0, "ignored": 0, "skipped": 0, "total": 575}}]},
1623 "publish": {"status": "skipped", "tookMs": 0},
1624 "metadata": {
1625 "crossScalaVersions": ["2.13.16", "2.12.20", "3.3.7"]
1626}
1627},{
1628 "module": "parsley-debug",
1629 "compile": {"status": "ok", "tookMs": 2188, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
1630 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1631 "test-compile": {"status": "ok", "tookMs": 2076, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
1632 "test": {"status": "ok", "tookMs": 979, "passed": 43, "failed": 0, "ignored": 0, "skipped": 0, "total": 43, "byFramework": [{"framework": "unknown", "stats": {"passed": 43, "failed": 0, "ignored": 0, "skipped": 0, "total": 43}}]},
1633 "publish": {"status": "skipped", "tookMs": 0},
1634 "metadata": {
1635 "crossScalaVersions": ["2.13.16", "2.12.20", "3.3.7"]
1636}
1637},{
1638 "module": "parsley-docs",
1639 "compile": {"status": "ok", "tookMs": 55, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
1640 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1641 "test-compile": {"status": "ok", "tookMs": 81, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
1642 "test": {"status": "ok", "tookMs": 78, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1643 "publish": {"status": "skipped", "tookMs": 0},
1644 "metadata": {
1645 "crossScalaVersions": ["2.13.16", "2.12.20", "3.3.7"]
1646}
1647}]
1648************************
1649[success] Total time: 61 s (0:01:01.0), completed Jan 13, 2026, 4:09:25 PM
1650[0JChecking patch project/plugins.sbt...
1651Checking patch project/build.properties...
1652Checking patch build.sbt...
1653Applied patch project/plugins.sbt cleanly.
1654Applied patch project/build.properties cleanly.
1655Applied patch build.sbt cleanly.