Build Logs

leviysoft/oolong • scheduled_3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY

Errors

0

Warnings

101

Total Lines

1749

1##################################
2Clonning https://github.com/leviysoft/oolong.git into /build/repo using revision v0.5.0
3##################################
4Note: switching to '4c5643b1bda8f0ddfe95def22813c231ef952bd1'.
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.1-RC1-bin-20260109-97cdaf4-NIGHTLY
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----
31Starting build for 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY
32Execute tests: false
33sbt project found:
34Sbt version 1.9.9 is not supported, minimal supported version is 1.11.5
35Enforcing usage of sbt in version 1.11.5
36No prepare script found for project leviysoft/oolong
37##################################
38Scala version: 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY
39Targets: io.github.leviysoft%oolong-bson io.github.leviysoft%oolong-bson-refined io.github.leviysoft%oolong-core io.github.leviysoft%oolong-mongo
40Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":[],"sourcePatches":[]}
41##################################
42Using extra scalacOptions: ,REQUIRE:-source:3.8
43Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
44[sbt_options] declare -a sbt_options=()
45[process_args] java_version = '17'
46[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
47# Executing command line:
48java
49-Dfile.encoding=UTF-8
50-Doolong.print.ast=true
51-Dcommunitybuild.scala=3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY
52-Dcommunitybuild.project.dependencies.add=
53-Xmx7G
54-Xms4G
55-Xss8M
56-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
57-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
58-jar
59/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
60"setCrossScalaVersions 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY"
61"++3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY -v"
62"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
63"set every credentials := Nil"
64"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
65"removeScalacOptionsStartingWith -P:wartremover"
66
67moduleMappings
68"runBuild 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":[],"sourcePatches":[]}""" io.github.leviysoft%oolong-bson io.github.leviysoft%oolong-bson-refined io.github.leviysoft%oolong-core io.github.leviysoft%oolong-mongo"
69
70[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
71[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
72[info] loading project definition from /build/repo/project
73[info] compiling 3 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
74[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
75[info] Compilation completed in 8.767s.
76[info] done compiling
77[info] loading settings for project root from build.sbt...
78[info] set current project to root (in build file:/build/repo/)
79[warn] there's a key that's not used by any other settings/tasks:
80[warn]
81[warn] * ThisBuild / organization
82[warn] +- /build/repo/build.sbt:4
83[warn]
84[warn] note: a setting might still be used by a command; to exclude a key from this `lintUnused` check
85[warn] either append it to `Global / excludeLintKeys` or call .withRank(KeyRanks.Invisible) on the key
86Execute setCrossScalaVersions: 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY
87OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY in oolong-mongo/crossScalaVersions
88OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY) in oolong-mongo/crossScalaVersions
89OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY in oolong-mongo-it/crossScalaVersions
90OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY) in oolong-mongo-it/crossScalaVersions
91OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY in oolong-bson-refined/crossScalaVersions
92OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY) in oolong-bson-refined/crossScalaVersions
93OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY in oolong-core/crossScalaVersions
94OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY) in oolong-core/crossScalaVersions
95OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY in root/crossScalaVersions
96OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY) in root/crossScalaVersions
97OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY in oolong-bson/crossScalaVersions
98OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY) in oolong-bson/crossScalaVersions
99[info] set current project to root (in build file:/build/repo/)
100[info] Setting Scala version to 3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY on 6 projects.
101[info] Switching Scala version on:
102[info] oolong-bson (3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY)
103[info] * root (3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY)
104[info] oolong-bson-refined (3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY)
105[info] oolong-mongo-it (3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY)
106[info] oolong-mongo (3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY)
107[info] oolong-core (3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY)
108[info] Excluding projects:
109[info] Reapplying settings...
110[info] set current project to root (in build file:/build/repo/)
111Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
112[info] Reapplying settings...
113[info] set current project to root (in build file:/build/repo/)
114[info] Defining Global / credentials, credentials and 4 others.
115[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 48 others.
116[info] Run `last` for details.
117[info] Reapplying settings...
118[info] set current project to root (in build file:/build/repo/)
119Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
120[info] Reapplying settings...
121OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
122
123 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
124 Did you mean allExcludeDependencies ?
125 , retry without global scopes
126[info] Reapplying settings...
127[info] set current project to root (in build file:/build/repo/)
128Execute removeScalacOptionsStartingWith: -P:wartremover
129[info] Reapplying settings...
130[info] set current project to root (in build file:/build/repo/)
131[success] Total time: 0 s, completed Jan 10, 2026, 1:13:24 AM
132Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":[],"sourcePatches":[]}
133Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),CompileOnly,List()))
134Starting build...
135Projects: Set(oolong-bson, oolong-bson-refined, oolong-core, oolong-mongo)
136Starting build for ProjectRef(file:/build/repo/,oolong-bson) (oolong-bson)... [0/4]
137OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
138OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
139OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
140Compile scalacOptions: -encoding, utf8, -explain-types, -language:higherKinds, -language:implicitConversions, -Xunchecked-java-output-version:17, -unchecked, -Ykind-projector, -Xcheck-macros, -Yretain-trees, -Wunused:all, -Xsemanticdb, -semanticdb-target, /build/repo/oolong-bson/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
141[info] compiling 12 Scala sources to /build/repo/oolong-bson/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/classes ...
142[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
143[warn] -- [E198] Unused Symbol Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/BsonDecoder.scala:64:26
144[warn] 64 | import quotes.reflect.*
145[warn] | ^
146[warn] | unused import
147[warn] -- [E198] Unused Symbol Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/BsonDecoder.scala:127:21
148[warn] 127 | def toSum[T: Type](mirror: Expr[Mirror.SumOf[T]], elemInstances: List[Expr[BsonDecoder[_]]])(using
149[warn] | ^^^^^^
150[warn] | unused explicit parameter
151[warn] -- [E198] Unused Symbol Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/BsonDecoder.scala:169:26
152[warn] 169 | import quotes.reflect.*
153[warn] | ^
154[warn] | unused import
155[warn] -- [E198] Unused Symbol Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/BsonEncoder.scala:36:26
156[warn] 36 | import quotes.reflect.*
157[warn] | ^
158[warn] | unused import
159[warn] -- [E198] Unused Symbol Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/BsonEncoder.scala:55:6
160[warn] 55 | mirror: Expr[Mirror.ProductOf[T]],
161[warn] | ^^^^^^
162[warn] | unused explicit parameter
163[warn] -- [E198] Unused Symbol Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/BsonEncoder.scala:117:26
164[warn] 117 | import quotes.reflect.*
165[warn] | ^
166[warn] | unused import
167[warn] -- [E198] Unused Symbol Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/annotation/BsonDiscriminator.scala:23:53
168[warn] 23 | .collect { case bd @ '{ new BsonDiscriminator($name, $fun) } =>
169[warn] | ^^^^
170[warn] | unused pattern variable
171[warn] -- [E198] Unused Symbol Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/annotation/BsonDiscriminator.scala:23:60
172[warn] 23 | .collect { case bd @ '{ new BsonDiscriminator($name, $fun) } =>
173[warn] | ^^^
174[warn] | unused pattern variable
175[warn] -- [E198] Unused Symbol Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/meta/QueryMeta.scala:18:23
176[warn] 18 | import q.reflect.*
177[warn] | ^
178[warn] | unused import
179[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/utils/utils.scala:79:10
180[warn] 79 | (baseFieldType.asType, fieldType.asType) match
181[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
182[warn] | match may not be exhaustive.
183[warn] |
184[warn] | It would fail on pattern case: (_, _)
185[warn] |
186[warn] | longer explanation available when compiling with `-explain`
187[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/oolong-bson/src/main/scala/oolong/bson/utils/utils.scala:103:12
188[warn] 103 | (baseType.asType, projFieldType.asType) match
189[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
190[warn] | match may not be exhaustive.
191[warn] |
192[warn] | It would fail on pattern case: (_, _)
193[warn] |
194[warn] | longer explanation available when compiling with `-explain`
195[warn] 12 warnings found
196[info] done compiling
197[info] compiling 6 Scala sources to /build/repo/oolong-bson/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/test-classes ...
198[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
199[warn] -- Warning: /build/repo/oolong-bson/src/test/scala/oolong/bson/meta/QueryMetaSpec.scala:10:1
200[warn] 10 |@nowarn("msg=unused local definition") // checks macro before expansion
201[warn] |^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
202[warn] |@nowarn annotation does not suppress any warnings
203[warn] two warnings found
204[info] done compiling
205Starting build for ProjectRef(file:/build/repo/,oolong-bson-refined) (oolong-bson-refined)... [1/4]
206Compile scalacOptions: -encoding, utf8, -explain-types, -language:higherKinds, -language:implicitConversions, -Xunchecked-java-output-version:17, -unchecked, -Ykind-projector, -Xcheck-macros, -Yretain-trees, -Wunused:all, -Xsemanticdb, -semanticdb-target, /build/repo/oolong-bson-refined/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
207[info] compiling 1 Scala source to /build/repo/oolong-bson-refined/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/classes ...
208[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
209[warn] one warning found
210[info] done compiling
211[info] compiling 1 Scala source to /build/repo/oolong-bson-refined/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/test-classes ...
212[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
213[warn] one warning found
214[info] done compiling
215Starting build for ProjectRef(file:/build/repo/,oolong-core) (oolong-core)... [2/4]
216Compile scalacOptions: -encoding, utf8, -explain-types, -language:higherKinds, -language:implicitConversions, -Xunchecked-java-output-version:17, -unchecked, -Ykind-projector, -Xcheck-macros, -Yretain-trees, -Wunused:all, -Xsemanticdb, -semanticdb-target, /build/repo/oolong-core/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
217[info] compiling 8 Scala sources to /build/repo/oolong-core/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/classes ...
218[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
219[warn] -- [E198] Unused Symbol Warning: /build/repo/oolong-core/src/main/scala/oolong/Backend.scala:27:45
220[warn] 27 | def optimize(query: OptimizableRepr)(using quotes: Quotes): OptimizableRepr = query
221[warn] | ^^^^^^
222[warn] | unused implicit parameter
223[warn] two warnings found
224[info] done compiling
225[info] compiling 2 Scala sources to /build/repo/oolong-core/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/test-classes ...
226[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
227[warn] one warning found
228[warn] one warning found
229[info] done compiling
230Starting build for ProjectRef(file:/build/repo/,oolong-mongo) (oolong-mongo)... [3/4]
231Compile scalacOptions: -encoding, utf8, -explain-types, -language:higherKinds, -language:implicitConversions, -Xunchecked-java-output-version:17, -unchecked, -Ykind-projector, -Xcheck-macros, -Yretain-trees, -Wunused:all, -Xsemanticdb, -semanticdb-target, /build/repo/oolong-mongo/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
232[info] compiling 9 Scala sources to /build/repo/oolong-mongo/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/classes ...
233[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
234[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/oolong-mongo/src/main/scala/oolong/mongo/RenderUtils.scala:107:13
235[warn] 107 | case AsIterable(list) => list.map(parseConstant(_)(definitions)).mkString("[", ", ", "]")
236[warn] | ^
237[warn] |the type test for scala.quoted.Expr[Iterable[Any]] cannot be checked at runtime because its type arguments can't be determined from scala.quoted.Expr[Any]
238[warn] |
239[warn] | longer explanation available when compiling with `-explain`
240[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/oolong-mongo/src/main/scala/oolong/mongo/RenderUtils.scala:108:13
241[warn] 108 | case AsSome(value) => parseConstant(value)(definitions)
242[warn] | ^
243[warn] |the type test for scala.quoted.Expr[Option[Any]] cannot be checked at runtime because its type arguments can't be determined from scala.quoted.Expr[Any]
244[warn] |
245[warn] | longer explanation available when compiling with `-explain`
246[warn] three warnings found
247[info] done compiling
248[info] compiling 7 Scala sources to /build/repo/oolong-mongo/target/scala-3.8.1-RC1-bin-20260109-97cdaf4-NIGHTLY/test-classes ...
249[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
250[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/ProjectionSpec.scala:34:25
251[info] 34 | val proj = projection[BaseClass, ProjectionClass]
252[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
253[info] |Optimized AST:
254[info] |Projection(fields = Vector("stringField1", "timeField", "innerClassField.fieldToKeep"))
255[info] |Generated Mongo query:
256[info] |{ "stringField1": 1, "timeField": 1, "innerClassField.fieldToKeep": 1 }
257[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:47:31
258[info] 47 | val q = query[TestClass](_.intField == 2)
259[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
260[info] | Optimized AST:
261[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 2))
262[info] | Generated Mongo query:
263[info] | { "intField": 2 }
264[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:48:28
265[info] 48 | val q = query[TestClass](_.intField == 2)
266[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
267[info] | Optimized AST:
268[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 2))
269[info] | Generated Mongo query:
270[info] | { "int_field": 2 }
271[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:55:28
272[info] 55 | val q = query[TestClass](_.intField > 2)
273[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
274[info] | Optimized AST:
275[info] | Gt(x = Prop(path = "intField"), y = Constant(s = 2))
276[info] | Generated Mongo query:
277[info] | { "int_field": { "$gt": 2 } }
278[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:62:28
279[info] 62 | val q = query[TestClass](_.intField >= 2)
280[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
281[info] | Optimized AST:
282[info] | Gte(x = Prop(path = "intField"), y = Constant(s = 2))
283[info] | Generated Mongo query:
284[info] | { "int_field": { "$gte": 2 } }
285[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:69:28
286[info] 69 | val q = query[TestClass](f => List(1, 2, 3).contains(f.intField))
287[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
288[info] |Optimized AST:
289[info] |In(x = Prop(path = "intField"), y = List(Constant(s = 1), Constant(s = 2), Constant(s = 3)))
290[info] |Generated Mongo query:
291[info] |{ "int_field": { "$in": [1, 2, 3] } }
292[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:80:28
293[info] 80 | val q = query[TestClass](f => !List(4, 5, 6).contains(f.intField))
294[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
295[info] |Optimized AST:
296[info] |Nin(x = Prop(path = "intField"), y = List(Constant(s = 4), Constant(s = 5), Constant(s = 6)))
297[info] |Generated Mongo query:
298[info] |{ "int_field": { "$nin": [4, 5, 6] } }
299[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:91:28
300[info] 91 | val q = query[TestClass](_.intField < 2)
301[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
302[info] | Optimized AST:
303[info] | Lt(x = Prop(path = "intField"), y = Constant(s = 2))
304[info] | Generated Mongo query:
305[info] | { "int_field": { "$lt": 2 } }
306[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:98:28
307[info] 98 | val q = query[TestClass](_.intField <= 2)
308[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
309[info] | Optimized AST:
310[info] | Lte(x = Prop(path = "intField"), y = Constant(s = 2))
311[info] | Generated Mongo query:
312[info] | { "int_field": { "$lte": 2 } }
313[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:105:28
314[info] 105 | val q = query[TestClass](_.stringField != "some")
315[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
316[info] | Optimized AST:
317[info] | Ne(x = Prop(path = "stringField"), y = Constant(s = "some"))
318[info] | Generated Mongo query:
319[info] | { "string_field": { "$ne": "some" } }
320[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:111:28
321[info] 111 | val q = query[TestClass](_.dateField == lift(LocalDate.of(2020, 12, 12)))
322[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
323[info] |Optimized AST:
324[info] |Eq(x = Prop(path = "dateField"), y = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@53149b6f))
325[info] |Generated Mongo query:
326[info] |{ "date_field": ? }
327[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:129:28
328[info] 129 | val q = query[TestClass](_.innerClassField == lift(InnerClass("one", 2)))
329[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
330[info] | Optimized AST:
331[info] | Eq(
332[info] | x = Prop(path = "innerClassField"),
333[info] | y = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@2044c7e5)
334[info] | )
335[info] | Generated Mongo query:
336[info] | { "inner_class_field": {"fieldOne": "one", "fieldTwo": 2} }
337[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:140:28
338[info] 140 | val q = query[TestClass](f => lift(List(1, 2, 3).filter(_ != 2)).contains(f.intField))
339[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
340[info] |Optimized AST:
341[info] |In(
342[info] | x = Prop(path = "intField"),
343[info] | y = ScalaCodeIterable(code = scala.quoted.runtime.impl.ExprImpl@3385424a)
344[info] |)
345[info] |Generated Mongo query:
346[info] |{ "int_field": { "$in": [?] } }
347[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:151:28
348[info] 151 | val q = query[TestClass](f => lift(List(1, 2, 3).filter(_ != 2)).contains(f.intField))
349[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
350[info] |Optimized AST:
351[info] |In(
352[info] | x = Prop(path = "intField"),
353[info] | y = ScalaCodeIterable(code = scala.quoted.runtime.impl.ExprImpl@147dd083)
354[info] |)
355[info] |Generated Mongo query:
356[info] |{ "int_field": { "$in": [?] } }
357[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:161:28
358[info] 161 | val q = query[TestClass](f => f.intField == 3 && f.stringField != "some")
359[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
360[info] | Optimized AST:
361[info] | And(
362[info] | children = List(
363[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 3)),
364[info] | Ne(x = Prop(path = "stringField"), y = Constant(s = "some"))
365[info] | )
366[info] | )
367[info] | Generated Mongo query:
368[info] | { "int_field": 3, "string_field": { "$ne": "some" } }
369[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:171:28
370[info] 171 | val q = query[TestClass](f => f.intField > 3 && f.intField != 5 && f.optionField.isEmpty)
371[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
372[info] |Optimized AST:
373[info] |And(
374[info] | children = List(
375[info] | Gt(x = Prop(path = "intField"), y = Constant(s = 3)),
376[info] | Ne(x = Prop(path = "intField"), y = Constant(s = 5)),
377[info] | Exists(x = Prop(path = "optionField"), y = Constant(s = false))
378[info] | )
379[info] |)
380[info] |Generated Mongo query:
381[info] |{ "$and": [ { "int_field": { "$gt": 3 } }, { "int_field": { "$ne": 5 } }, { "option_field": { "$exists": false } } ] }
382[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:186:28
383[info] 186 | val q = query[TestClass](f => f.intField == 3 || f.stringField != "some")
384[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
385[info] |Optimized AST:
386[info] |Or(
387[info] | children = List(
388[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 3)),
389[info] | Ne(x = Prop(path = "stringField"), y = Constant(s = "some"))
390[info] | )
391[info] |)
392[info] |Generated Mongo query:
393[info] |{ "$or": [ { "int_field": 3 }, { "string_field": { "$ne": "some" } } ] }
394[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:201:28
395[info] 201 | val q = query[TestClass](f => (f.intField == 3 || f.stringField != "some") && f.listField.isEmpty)
396[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
397[info] |Optimized AST:
398[info] |And(
399[info] | children = List(
400[info] | Or(
401[info] | children = List(
402[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 3)),
403[info] | Ne(x = Prop(path = "stringField"), y = Constant(s = "some"))
404[info] | )
405[info] | ),
406[info] | Size(x = Prop(path = "listField"), y = Constant(s = 0))
407[info] | )
408[info] |)
409[info] |Generated Mongo query:
410[info] |{ "$or": [ { "int_field": 3 }, { "string_field": { "$ne": "some" } } ], "list_field": { "$size": 0 } }
411[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:217:28
412[info] 217 | val q = query[TestClass](f => f.intField == 3 || f.stringField != "some" && f.listField.isEmpty)
413[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
414[info] |Optimized AST:
415[info] |Or(
416[info] | children = List(
417[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 3)),
418[info] | And(
419[info] | children = List(
420[info] | Ne(x = Prop(path = "stringField"), y = Constant(s = "some")),
421[info] | Size(x = Prop(path = "listField"), y = Constant(s = 0))
422[info] | )
423[info] | )
424[info] | )
425[info] |)
426[info] |Generated Mongo query:
427[info] |{ "$or": [ { "int_field": 3 }, { "string_field": { "$ne": "some" }, "list_field": { "$size": 0 } } ] }
428[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:235:28
429[info] 235 | val q = query[TestClass](f => !(f.intField == 3))
430[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
431[info] | Optimized AST:
432[info] | Ne(x = Prop(path = "intField"), y = Constant(s = 3))
433[info] | Generated Mongo query:
434[info] | { "int_field": { "$ne": 3 } }
435[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:245:28
436[info] 245 | val q = query[TestClass](f => !(f.intField > 3))
437[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
438[info] | Optimized AST:
439[info] | Not(x = Gt(x = Prop(path = "intField"), y = Constant(s = 3)))
440[info] | Generated Mongo query:
441[info] | { "int_field": { "$not": { "$gt": 3 } } }
442[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:255:28
443[info] 255 | val q = query[TestClass](f => f.optionField.isDefined)
444[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
445[info] | Optimized AST:
446[info] | Exists(x = Prop(path = "optionField"), y = Constant(s = true))
447[info] | Generated Mongo query:
448[info] | { "option_field": { "$exists": true } }
449[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:260:28
450[info] 260 | val q = query[TestClass](f => f.optionField.isEmpty)
451[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
452[info] | Optimized AST:
453[info] | Exists(x = Prop(path = "optionField"), y = Constant(s = false))
454[info] | Generated Mongo query:
455[info] | { "option_field": { "$exists": false } }
456[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:265:28
457[info] 265 | val q = query[TestClass](
458[info] | ^
459[info] | Optimized AST:
460[info] | And(
461[info] | children = List(
462[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 2)),
463[info] | Subquery(code = scala.quoted.runtime.impl.ExprImpl@1e39a2ed)
464[info] | )
465[info] | )
466[info] | Generated Mongo query:
467[info] | { "int_field": 2, {...} }
468[info] |
469[info] 266 | _.intField == 2 && unchecked(
470[info] 267 |...
471[info] 271 | )
472[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:283:28
473[info] 283 | val q = query[TestClass](_.optionInnerClassField.!!.fieldTwo == 2)
474[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
475[info] |Optimized AST:
476[info] |Eq(x = Prop(path = "optionInnerClassField.fieldTwo"), y = Constant(s = 2))
477[info] |Generated Mongo query:
478[info] |{ "option_inner_class_field.field_two": 2 }
479[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:289:28
480[info] 289 | val q = query[TestClass](_.listField.isEmpty)
481[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
482[info] | Optimized AST:
483[info] | Size(x = Prop(path = "listField"), y = Constant(s = 0))
484[info] | Generated Mongo query:
485[info] | { "list_field": { "$size": 0 } }
486[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:295:28
487[info] 295 | val q = query[TestClass](_.listField.size == 2)
488[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
489[info] | Optimized AST:
490[info] | Size(x = Prop(path = "listField"), y = Constant(s = 2))
491[info] | Generated Mongo query:
492[info] | { "list_field": { "$size": 2 } }
493[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:301:28
494[info] 301 | val q = query[TestClass](_.listField.length == 2)
495[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
496[info] | Optimized AST:
497[info] | Size(x = Prop(path = "listField"), y = Constant(s = 2))
498[info] | Generated Mongo query:
499[info] | { "list_field": { "$size": 2 } }
500[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:308:28
501[info] 308 | val q = query[TestClass](_.listField.contains(1.1))
502[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
503[info] | Optimized AST:
504[info] | Eq(x = Prop(path = "listField"), y = Constant(s = 1.1))
505[info] | Generated Mongo query:
506[info] | { "list_field": 1.1 }
507[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:319:28
508[info] 319 | val q = query[TestClass](!_.listField.contains(1.1))
509[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
510[info] | Optimized AST:
511[info] | Ne(x = Prop(path = "listField"), y = Constant(s = 1.1))
512[info] | Generated Mongo query:
513[info] | { "list_field": { "$ne": 1.1 } }
514[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:330:28
515[info] 330 | val q = query[TestClass](_.optionField.contains(2L))
516[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
517[info] | Optimized AST:
518[info] | Eq(x = Prop(path = "optionField"), y = Constant(s = 2L))
519[info] | Generated Mongo query:
520[info] | { "option_field": 2 }
521[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:339:28
522[info] 339 | val q = query[TestClass](!_.optionField.contains(2L))
523[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
524[info] | Optimized AST:
525[info] | Ne(x = Prop(path = "optionField"), y = Constant(s = 2L))
526[info] | Generated Mongo query:
527[info] | { "option_field": { "$ne": 2 } }
528[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:352:28
529[info] 352 | val q = query[TestClass](mySubquery1(_))
530[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
531[info] | Optimized AST:
532[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123))
533[info] | Generated Mongo query:
534[info] | { "int_field": 123 }
535[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:361:28
536[info] 361 | val q = query[TestClass](x => mySubquery1(x))
537[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
538[info] | Optimized AST:
539[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123))
540[info] | Generated Mongo query:
541[info] | { "int_field": 123 }
542[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:374:28
543[info] 374 | val q = query[TestClass](myFilter(_))
544[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
545[info] | Optimized AST:
546[info] | Eq(x = Prop(path = "optionField"), y = Constant(s = 123L))
547[info] | Generated Mongo query:
548[info] | { "option_field": 123 }
549[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:387:28
550[info] 387 | val q = query[TestClass](genericSubquery(_))
551[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
552[info] | Optimized AST:
553[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123))
554[info] | Generated Mongo query:
555[info] | { "int_field": 123 }
556[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:400:28
557[info] 400 | val q = query[TestClass](myFilter(_))
558[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
559[info] | Optimized AST:
560[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123))
561[info] | Generated Mongo query:
562[info] | { "int_field": 123 }
563[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:411:28
564[info] 411 | val q = query[TestClass](x => x.stringField == "qqq" && mySubquery1(x))
565[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
566[info] | Optimized AST:
567[info] | And(
568[info] | children = List(
569[info] | Eq(x = Prop(path = "stringField"), y = Constant(s = "qqq")),
570[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123))
571[info] | )
572[info] | )
573[info] | Generated Mongo query:
574[info] | { "string_field": "qqq", "int_field": 123 }
575[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:425:28
576[info] 425 | val q = query[TestClass](mySubquery2(_))
577[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
578[info] | Optimized AST:
579[info] | Or(
580[info] | children = List(
581[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123)),
582[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 456))
583[info] | )
584[info] | )
585[info] | Generated Mongo query:
586[info] | { "$or": [ { "int_field": 123 }, { "int_field": 456 } ] }
587[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:440:28
588[info] 440 | val q = query[TestClass](_.stringField.matches("(?ix)SomeString"))
589[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
590[info] |Optimized AST:
591[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@1645ba92)
592[info] |Generated Mongo query:
593[info] |{ "string_field": { "$regex": "SomeString", "$options": "ix" } }
594[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:449:28
595[info] 449 | val q = query[TestClass](s => Pattern.matches("SomeString", s.stringField))
596[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
597[info] |Optimized AST:
598[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@2b97b1a)
599[info] |Generated Mongo query:
600[info] |{ "string_field": { "$regex": "SomeString" } }
601[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:458:28
602[info] 458 | val q = query[TestClass](_.intField.isInstanceOf[MongoType.INT32])
603[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
604[info] |Optimized AST:
605[info] |TypeCheck(x = Prop(path = "intField"), typeInfo = oolong.DefaultAstParser$$anon$1@5c266c2d)
606[info] |Generated Mongo query:
607[info] |{ "int_field": { "$type": 16 } }
608[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:468:28
609[info] 468 | val q = query[TestClass](_.innerClassField.isInstanceOf[MongoType.DOCUMENT])
610[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
611[info] |Optimized AST:
612[info] |TypeCheck(x = Prop(path = "innerClassField"), typeInfo = oolong.DefaultAstParser$$anon$1@b940877)
613[info] |Generated Mongo query:
614[info] |{ "inner_class_field": { "$type": 3 } }
615[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:478:28
616[info] 478 | val q = query[TestClass](_.intField % lift(4) == 5.2)
617[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
618[info] |Optimized AST:
619[info] |Mod(
620[info] | x = Prop(path = "intField"),
621[info] | divisor = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@7695e9de),
622[info] | remainder = Constant(s = 5.2)
623[info] |)
624[info] |Generated Mongo query:
625[info] |{ "int_field": { "$mod": [?,5.2] } }
626[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QueryWithMetaSpec.scala:495:28
627[info] 495 | val q = query[TestClass](_.doubleField % 5.2 == lift(123L))
628[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
629[info] |Optimized AST:
630[info] |Mod(
631[info] | x = Prop(path = "doubleField"),
632[info] | divisor = Constant(s = 5.2),
633[info] | remainder = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@21f1fac9)
634[info] |)
635[info] |Generated Mongo query:
636[info] |{ "double_field": { "$mod": [5.2,?] } }
637[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:44:32
638[info] 44 | val q = update[TestClass](_.set(_.intField, 2))
639[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
640[info] |AST:
641[info] |Update(ops = List(Set(prop = Prop(path = "intField"), expr = Constant(t = 2))))
642[info] |Generated Mongo query:
643[info] |{
644[info] | "$set": { "intField": 2 }
645[info] |}
646[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:46:29
647[info] 46 | val q = update[TestClass](_.set(_.intField, 2))
648[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
649[info] |AST:
650[info] |Update(ops = List(Set(prop = Prop(path = "intField"), expr = Constant(t = 2))))
651[info] |Generated Mongo query:
652[info] |{
653[info] | "$set": { "int_field": 2 }
654[info] |}
655[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:52:29
656[info] 52 | val q = update[TestClass](_.setOpt(_.optionField, 2L))
657[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
658[info] |AST:
659[info] |Update(ops = List(Set(prop = Prop(path = "optionField"), expr = Constant(t = 2L))))
660[info] |Generated Mongo query:
661[info] |{
662[info] | "$set": { "option_field": 2 }
663[info] |}
664[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:58:29
665[info] 58 | val q = update[TestClass](
666[info] | ^
667[info] |AST:
668[info] |Update(
669[info] | ops = List(
670[info] | Set(
671[info] | prop = Prop(path = "optionInnerClassField"),
672[info] | expr = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@1af70ed1)
673[info] | )
674[info] | )
675[info] |)
676[info] |Generated Mongo query:
677[info] |{
678[info] | "$set": { "option_inner_class_field": {"fieldOne": "some", "fieldTwo": 2, "fieldThree": null, "fieldFour": Function(LocalDate.now()), "fieldFive": {"fieldOne": 3}, "fieldSix": ["1", "2"]} }
679[info] |}
680[info] |
681[info] 59 | _.set(
682[info] 60 |...
683[info] 63 | )
684[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:82:29
685[info] 82 | val q = update[TestClass](_.inc(_.intField, 1))
686[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
687[info] |AST:
688[info] |Update(ops = List(Inc(prop = Prop(path = "intField"), expr = Constant(t = 1))))
689[info] |Generated Mongo query:
690[info] |{
691[info] | "$inc": { "int_field": 1 }
692[info] |}
693[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:88:29
694[info] 88 | val q = update[TestClass](_.mul(_.intField, 10))
695[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
696[info] |AST:
697[info] |Update(ops = List(Mul(prop = Prop(path = "intField"), expr = Constant(t = 10))))
698[info] |Generated Mongo query:
699[info] |{
700[info] | "$mul": { "int_field": 10 }
701[info] |}
702[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:94:29
703[info] 94 | val q = update[TestClass](_.max(_.intField, 10))
704[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
705[info] |AST:
706[info] |Update(ops = List(Max(prop = Prop(path = "intField"), expr = Constant(t = 10))))
707[info] |Generated Mongo query:
708[info] |{
709[info] | "$max": { "int_field": 10 }
710[info] |}
711[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:100:29
712[info] 100 | val q = update[TestClass](_.min(_.intField, 10))
713[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
714[info] |AST:
715[info] |Update(ops = List(Min(prop = Prop(path = "intField"), expr = Constant(t = 10))))
716[info] |Generated Mongo query:
717[info] |{
718[info] | "$min": { "int_field": 10 }
719[info] |}
720[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:106:29
721[info] 106 | val q = update[TestClass](_.rename(_.intField, "newFieldName"))
722[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
723[info] |AST:
724[info] |Update(ops = List(Rename(prop = Prop(path = "intField"), expr = Constant(t = "newFieldName"))))
725[info] |Generated Mongo query:
726[info] |{
727[info] | "$rename": { "int_field": "newFieldName" }
728[info] |}
729[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:112:29
730[info] 112 | val q = update[TestClass](_.unset(_.intField))
731[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
732[info] | AST:
733[info] | Update(ops = List(Unset(prop = Prop(path = "intField"))))
734[info] | Generated Mongo query:
735[info] | {
736[info] | "$unset": { "int_field": "" }
737[info] | }
738[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:118:29
739[info] 118 | val q = update[TestClass](_.setOnInsert(_.intField, 14))
740[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
741[info] |AST:
742[info] |Update(ops = List(SetOnInsert(prop = Prop(path = "intField"), expr = Constant(t = 14))))
743[info] |Generated Mongo query:
744[info] |{
745[info] | "$setOnInsert": { "int_field": 14 }
746[info] |}
747[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateWithMetaSpec.scala:124:29
748[info] 124 | val q = update[TestClass](
749[info] | ^
750[info] | AST:
751[info] | Update(
752[info] | ops = List(
753[info] | Unset(prop = Prop(path = "dateField")),
754[info] | Set(prop = Prop(path = "optionField"), expr = Constant(t = 2L)),
755[info] | Set(prop = Prop(path = "intField"), expr = Constant(t = 19))
756[info] | )
757[info] | )
758[info] | Generated Mongo query:
759[info] | {
760[info] | "$set": { "option_field": 2, "int_field": 19 },
761[info] | "$unset": { "date_field": "" }
762[info] | }
763[info] |
764[info] 125 | _.unset(_.dateField)
765[info] 126 |...
766[info] 128 | )
767[warn] -- Warning: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/ProjectionSpec.scala:13:1
768[warn] 13 |@nowarn("msg=unused local definition")
769[warn] |^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
770[warn] |@nowarn annotation does not suppress any warnings
771[warn] two warnings found
772[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/ProjectionSpec.scala:49:25
773[info] 49 | val proj = projection[BaseClass, ProjectionClass]
774[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
775[info] |Optimized AST:
776[info] |Projection(fields = Vector("stringField1", "timeField", "innerClassField.fieldToKeep"))
777[info] |Generated Mongo query:
778[info] |{ "string_field1": 1, "time_field": 1, "inner_class_field.field_to_keep": 1 }
779[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/ProjectionSpec.scala:98:25
780[info] 98 | val proj = projection[Base, Projection]
781[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
782[info] |Optimized AST:
783[info] |Projection(
784[info] | fields = Vector(
785[info] | "fieldTheSame",
786[info] | "fieldFullProjection",
787[info] | "fieldProjection.inner1.field1",
788[info] | "fieldProjection.inner2"
789[info] | )
790[info] |)
791[info] |Generated Mongo query:
792[info] |{ "fieldTheSame": 1, "fieldFullProjection": 1, "fieldProjection.inner1.field1": 1, "fieldProjection.inner2": 1 }
793[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/ProjectionSpec.scala:126:25
794[info] 126 | val proj = projection[Student, StudentDTO]
795[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
796[info] | Optimized AST:
797[info] | Projection(fields = Vector())
798[info] | Generated Mongo query:
799[info] | { }
800[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:55:31
801[info] 55 | val q = query[TestClass](_.intField > 2)
802[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
803[info] | Optimized AST:
804[info] | Gt(x = Prop(path = "intField"), y = Constant(s = 2))
805[info] | Generated Mongo query:
806[info] | { "intField": { "$gt": 2 } }
807[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:63:31
808[info] 63 | val q = query[TestClass](_.intField >= 2)
809[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
810[info] | Optimized AST:
811[info] | Gte(x = Prop(path = "intField"), y = Constant(s = 2))
812[info] | Generated Mongo query:
813[info] | { "intField": { "$gte": 2 } }
814[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:72:31
815[info] 72 | val q = query[TestClass](f => List(1, 2, 3).contains(f.intField))
816[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
817[info] |Optimized AST:
818[info] |In(x = Prop(path = "intField"), y = List(Constant(s = 1), Constant(s = 2), Constant(s = 3)))
819[info] |Generated Mongo query:
820[info] |{ "intField": { "$in": [1, 2, 3] } }
821[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:75:32
822[info] 75 | val q1 = query[TestClass](_.listField.contains(1.1))
823[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
824[info] | Optimized AST:
825[info] | Eq(x = Prop(path = "listField"), y = Constant(s = 1.1))
826[info] | Generated Mongo query:
827[info] | { "listField": 1.1 }
828[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:78:32
829[info] 78 | val q2 = query[TestClass](!_.listField.contains(1.1))
830[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
831[info] | Optimized AST:
832[info] | Ne(x = Prop(path = "listField"), y = Constant(s = 1.1))
833[info] | Generated Mongo query:
834[info] | { "listField": { "$ne": 1.1 } }
835[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:105:31
836[info] 105 | val q = query[TestClass](f => !List(4, 5, 6).contains(f.intField))
837[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
838[info] |Optimized AST:
839[info] |Nin(x = Prop(path = "intField"), y = List(Constant(s = 4), Constant(s = 5), Constant(s = 6)))
840[info] |Generated Mongo query:
841[info] |{ "intField": { "$nin": [4, 5, 6] } }
842[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:119:31
843[info] 119 | val q = query[TestClass](_.intField < 2)
844[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
845[info] | Optimized AST:
846[info] | Lt(x = Prop(path = "intField"), y = Constant(s = 2))
847[info] | Generated Mongo query:
848[info] | { "intField": { "$lt": 2 } }
849[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:132:31
850[info] 132 | val q = query[TestClass](_.intField <= 2)
851[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
852[info] | Optimized AST:
853[info] | Lte(x = Prop(path = "intField"), y = Constant(s = 2))
854[info] | Generated Mongo query:
855[info] | { "intField": { "$lte": 2 } }
856[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:145:31
857[info] 145 | val q = query[TestClass](_.stringField != "some")
858[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
859[info] | Optimized AST:
860[info] | Ne(x = Prop(path = "stringField"), y = Constant(s = "some"))
861[info] | Generated Mongo query:
862[info] | { "stringField": { "$ne": "some" } }
863[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:156:31
864[info] 156 | val q = query[TestClass](_.dateField == lift(LocalDate.of(2020, 12, 12)))
865[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
866[info] |Optimized AST:
867[info] |Eq(x = Prop(path = "dateField"), y = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@340298bf))
868[info] |Generated Mongo query:
869[info] |{ "dateField": ? }
870[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:179:31
871[info] 179 | val q = query[TestClass](_.innerClassField == lift(InnerClass("one", 2)))
872[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
873[info] | Optimized AST:
874[info] | Eq(
875[info] | x = Prop(path = "innerClassField"),
876[info] | y = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@2b751b59)
877[info] | )
878[info] | Generated Mongo query:
879[info] | { "innerClassField": {"fieldOne": "one", "fieldTwo": 2} }
880[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:192:31
881[info] 192 | val q = query[TestClass](f => lift(List(1, 2, 3).filter(_ != 2)).contains(f.intField))
882[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
883[info] |Optimized AST:
884[info] |In(
885[info] | x = Prop(path = "intField"),
886[info] | y = ScalaCodeIterable(code = scala.quoted.runtime.impl.ExprImpl@5e194613)
887[info] |)
888[info] |Generated Mongo query:
889[info] |{ "intField": { "$in": [?] } }
890[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:208:31
891[info] 208 | val q = query[TestClass](f => lift(List(1, 2, 3).filter(_ != 2)).contains(f.intField))
892[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
893[info] |Optimized AST:
894[info] |In(
895[info] | x = Prop(path = "intField"),
896[info] | y = ScalaCodeIterable(code = scala.quoted.runtime.impl.ExprImpl@9d200d4)
897[info] |)
898[info] |Generated Mongo query:
899[info] |{ "intField": { "$in": [?] } }
900[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:222:31
901[info] 222 | val q = query[TestClass](f => f.intField == 3 && f.stringField != "some")
902[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
903[info] | Optimized AST:
904[info] | And(
905[info] | children = List(
906[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 3)),
907[info] | Ne(x = Prop(path = "stringField"), y = Constant(s = "some"))
908[info] | )
909[info] | )
910[info] | Generated Mongo query:
911[info] | { "intField": 3, "stringField": { "$ne": "some" } }
912[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:237:31
913[info] 237 | val q = query[TestClass](f => f.intField > 3 && f.intField != 5 && f.optionField.isEmpty)
914[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
915[info] |Optimized AST:
916[info] |And(
917[info] | children = List(
918[info] | Gt(x = Prop(path = "intField"), y = Constant(s = 3)),
919[info] | Ne(x = Prop(path = "intField"), y = Constant(s = 5)),
920[info] | Exists(x = Prop(path = "optionField"), y = Constant(s = false))
921[info] | )
922[info] |)
923[info] |Generated Mongo query:
924[info] |{ "$and": [ { "intField": { "$gt": 3 } }, { "intField": { "$ne": 5 } }, { "optionField": { "$exists": false } } ] }
925[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:257:31
926[info] 257 | val q = query[TestClass](f => f.intField == 3 || f.stringField != "some")
927[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
928[info] |Optimized AST:
929[info] |Or(
930[info] | children = List(
931[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 3)),
932[info] | Ne(x = Prop(path = "stringField"), y = Constant(s = "some"))
933[info] | )
934[info] |)
935[info] |Generated Mongo query:
936[info] |{ "$or": [ { "intField": 3 }, { "stringField": { "$ne": "some" } } ] }
937[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:276:31
938[info] 276 | val q = query[TestClass](f => (f.intField == 3 || f.stringField != "some") && f.listField.isEmpty)
939[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
940[info] |Optimized AST:
941[info] |And(
942[info] | children = List(
943[info] | Or(
944[info] | children = List(
945[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 3)),
946[info] | Ne(x = Prop(path = "stringField"), y = Constant(s = "some"))
947[info] | )
948[info] | ),
949[info] | Size(x = Prop(path = "listField"), y = Constant(s = 0))
950[info] | )
951[info] |)
952[info] |Generated Mongo query:
953[info] |{ "$or": [ { "intField": 3 }, { "stringField": { "$ne": "some" } } ], "listField": { "$size": 0 } }
954[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:295:31
955[info] 295 | val q = query[TestClass](f => f.intField == 3 || f.stringField != "some" && f.listField.isEmpty)
956[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
957[info] |Optimized AST:
958[info] |Or(
959[info] | children = List(
960[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 3)),
961[info] | And(
962[info] | children = List(
963[info] | Ne(x = Prop(path = "stringField"), y = Constant(s = "some")),
964[info] | Size(x = Prop(path = "listField"), y = Constant(s = 0))
965[info] | )
966[info] | )
967[info] | )
968[info] |)
969[info] |Generated Mongo query:
970[info] |{ "$or": [ { "intField": 3 }, { "stringField": { "$ne": "some" }, "listField": { "$size": 0 } } ] }
971[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:317:31
972[info] 317 | val q = query[TestClass](f => !(f.intField == 3))
973[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
974[info] | Optimized AST:
975[info] | Ne(x = Prop(path = "intField"), y = Constant(s = 3))
976[info] | Generated Mongo query:
977[info] | { "intField": { "$ne": 3 } }
978[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:330:31
979[info] 330 | val q = query[TestClass](f => !(f.intField > 3))
980[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
981[info] | Optimized AST:
982[info] | Not(x = Gt(x = Prop(path = "intField"), y = Constant(s = 3)))
983[info] | Generated Mongo query:
984[info] | { "intField": { "$not": { "$gt": 3 } } }
985[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:344:31
986[info] 344 | val q = query[TestClass](f => f.optionField.isDefined)
987[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
988[info] | Optimized AST:
989[info] | Exists(x = Prop(path = "optionField"), y = Constant(s = true))
990[info] | Generated Mongo query:
991[info] | { "optionField": { "$exists": true } }
992[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:355:31
993[info] 355 | val q = query[TestClass](f => f.optionField.isEmpty)
994[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
995[info] | Optimized AST:
996[info] | Exists(x = Prop(path = "optionField"), y = Constant(s = false))
997[info] | Generated Mongo query:
998[info] | { "optionField": { "$exists": false } }
999[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:366:28
1000[info] 366 | val q = query[TestClass](
1001[info] | ^
1002[info] | Optimized AST:
1003[info] | And(
1004[info] | children = List(
1005[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 2)),
1006[info] | Subquery(code = scala.quoted.runtime.impl.ExprImpl@a4f3860)
1007[info] | )
1008[info] | )
1009[info] | Generated Mongo query:
1010[info] | { "intField": 2, {...} }
1011[info] |
1012[info] 367 | _.intField == 2 && unchecked(
1013[info] 368 |...
1014[info] 372 | )
1015[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:394:31
1016[info] 394 | val q = query[TestClass](_.optionInnerClassField.!!.fieldTwo == 2)
1017[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1018[info] |Optimized AST:
1019[info] |Eq(x = Prop(path = "optionInnerClassField.fieldTwo"), y = Constant(s = 2))
1020[info] |Generated Mongo query:
1021[info] |{ "optionInnerClassField.fieldTwo": 2 }
1022[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:406:31
1023[info] 406 | val q = query[TestClass](_.listField.isEmpty)
1024[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1025[info] | Optimized AST:
1026[info] | Size(x = Prop(path = "listField"), y = Constant(s = 0))
1027[info] | Generated Mongo query:
1028[info] | { "listField": { "$size": 0 } }
1029[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:418:31
1030[info] 418 | val q = query[TestClass](_.listField.size == 2)
1031[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1032[info] | Optimized AST:
1033[info] | Size(x = Prop(path = "listField"), y = Constant(s = 2))
1034[info] | Generated Mongo query:
1035[info] | { "listField": { "$size": 2 } }
1036[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:430:31
1037[info] 430 | val q = query[TestClass](_.listField.length == 2)
1038[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1039[info] | Optimized AST:
1040[info] | Size(x = Prop(path = "listField"), y = Constant(s = 2))
1041[info] | Generated Mongo query:
1042[info] | { "listField": { "$size": 2 } }
1043[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:443:31
1044[info] 443 | val q = query[TestClass](_.listField.contains(1.1))
1045[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1046[info] | Optimized AST:
1047[info] | Eq(x = Prop(path = "listField"), y = Constant(s = 1.1))
1048[info] | Generated Mongo query:
1049[info] | { "listField": 1.1 }
1050[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:458:31
1051[info] 458 | val q = query[TestClass](!_.listField.contains(1.1))
1052[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1053[info] | Optimized AST:
1054[info] | Ne(x = Prop(path = "listField"), y = Constant(s = 1.1))
1055[info] | Generated Mongo query:
1056[info] | { "listField": { "$ne": 1.1 } }
1057[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:473:31
1058[info] 473 | val q = query[TestClass](_.optionField.contains(2L))
1059[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1060[info] | Optimized AST:
1061[info] | Eq(x = Prop(path = "optionField"), y = Constant(s = 2L))
1062[info] | Generated Mongo query:
1063[info] | { "optionField": 2 }
1064[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:488:31
1065[info] 488 | val q = query[TestClass](!_.optionField.contains(2L))
1066[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1067[info] | Optimized AST:
1068[info] | Ne(x = Prop(path = "optionField"), y = Constant(s = 2L))
1069[info] | Generated Mongo query:
1070[info] | { "optionField": { "$ne": 2 } }
1071[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:504:31
1072[info] 504 | val q = query[TestClass](mySubquery1(_))
1073[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1074[info] | Optimized AST:
1075[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123))
1076[info] | Generated Mongo query:
1077[info] | { "intField": 123 }
1078[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:518:31
1079[info] 518 | val q = query[TestClass](x => mySubquery1(x))
1080[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1081[info] | Optimized AST:
1082[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123))
1083[info] | Generated Mongo query:
1084[info] | { "intField": 123 }
1085[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:534:31
1086[info] 534 | val q = query[TestClass](myFilter(_))
1087[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1088[info] | Optimized AST:
1089[info] | Eq(x = Prop(path = "optionField"), y = Constant(s = 123L))
1090[info] | Generated Mongo query:
1091[info] | { "optionField": 123 }
1092[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:550:31
1093[info] 550 | val q = query[TestClass](genericSubquery(_))
1094[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1095[info] | Optimized AST:
1096[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123))
1097[info] | Generated Mongo query:
1098[info] | { "intField": 123 }
1099[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:567:31
1100[info] 567 | val q = query[TestClass](myFilter(_))
1101[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1102[info] | Optimized AST:
1103[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123))
1104[info] | Generated Mongo query:
1105[info] | { "intField": 123 }
1106[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:581:31
1107[info] 581 | val q = query[TestClass](x => x.stringField == "qqq" && mySubquery1(x))
1108[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1109[info] | Optimized AST:
1110[info] | And(
1111[info] | children = List(
1112[info] | Eq(x = Prop(path = "stringField"), y = Constant(s = "qqq")),
1113[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123))
1114[info] | )
1115[info] | )
1116[info] | Generated Mongo query:
1117[info] | { "stringField": "qqq", "intField": 123 }
1118[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:599:31
1119[info] 599 | val q = query[TestClass](mySubquery2(_))
1120[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1121[info] | Optimized AST:
1122[info] | Or(
1123[info] | children = List(
1124[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 123)),
1125[info] | Eq(x = Prop(path = "intField"), y = Constant(s = 456))
1126[info] | )
1127[info] | )
1128[info] | Generated Mongo query:
1129[info] | { "$or": [ { "intField": 123 }, { "intField": 456 } ] }
1130[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:617:31
1131[info] 617 | val q = query[TestClass](_.stringField.matches("(?ix)SomeString"))
1132[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1133[info] |Optimized AST:
1134[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@7eb60782)
1135[info] |Generated Mongo query:
1136[info] |{ "stringField": { "$regex": "SomeString", "$options": "ix" } }
1137[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:631:31
1138[info] 631 | val q = query[TestClass](s => Pattern.compile("(?ix)SomeString").matcher(s.stringField).matches())
1139[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1140[info] |Optimized AST:
1141[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@268f3f3f)
1142[info] |Generated Mongo query:
1143[info] |{ "stringField": { "$regex": "SomeString", "$options": "ix" } }
1144[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:644:28
1145[info] 644 | val q = query[TestClass](s =>
1146[info] | ^
1147[info] |Optimized AST:
1148[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@316b2680)
1149[info] |Generated Mongo query:
1150[info] |{ "stringField": { "$regex": "SomeString", "$options": "ix" } }
1151[info] |
1152[info] 645 | Pattern.compile("SomeString", Pattern.CASE_INSENSITIVE | Pattern.COMMENTS).matcher(s.stringField).matches()
1153[info] 646 | )
1154[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:661:31
1155[info] 661 | val q = query[TestClass](s => Pattern.matches("(?ix)SomeString", s.stringField))
1156[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1157[info] |Optimized AST:
1158[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@30bd28c8)
1159[info] |Generated Mongo query:
1160[info] |{ "stringField": { "$regex": "SomeString", "$options": "ix" } }
1161[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:674:31
1162[info] 674 | val q = query[TestClass](_.stringField.matches("(?ixmu)SomeString"))
1163[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1164[info] |Optimized AST:
1165[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@65dc3189)
1166[info] |Generated Mongo query:
1167[info] |{ "stringField": { "$regex": "SomeString", "$options": "imx" } }
1168[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:687:31
1169[info] 687 | val q = query[TestClass](s => Pattern.compile("(?ixmu)SomeString").matcher(s.stringField).matches())
1170[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1171[info] |Optimized AST:
1172[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@3b2a3c6e)
1173[info] |Generated Mongo query:
1174[info] |{ "stringField": { "$regex": "SomeString", "$options": "imx" } }
1175[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:700:28
1176[info] 700 | val q = query[TestClass](s =>
1177[info] | ^
1178[info] |Optimized AST:
1179[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@37096a4e)
1180[info] |Generated Mongo query:
1181[info] |{ "stringField": { "$regex": "SomeString", "$options": "imx" } }
1182[info] |
1183[info] 701 | Pattern
1184[info] 702 |...
1185[info] 705 | )
1186[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:723:31
1187[info] 723 | val q = query[TestClass](s => Pattern.matches("(?ixmu)SomeString", s.stringField))
1188[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1189[info] |Optimized AST:
1190[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@648e313a)
1191[info] |Generated Mongo query:
1192[info] |{ "stringField": { "$regex": "SomeString", "$options": "imx" } }
1193[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:736:31
1194[info] 736 | val q = query[TestClass](s => Pattern.matches("SomeString", s.stringField))
1195[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1196[info] |Optimized AST:
1197[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@2e6c7e12)
1198[info] |Generated Mongo query:
1199[info] |{ "stringField": { "$regex": "SomeString" } }
1200[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:749:31
1201[info] 749 | val q = query[TestClass](s => Pattern.compile("SomeString").matcher(s.stringField).matches())
1202[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1203[info] |Optimized AST:
1204[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@7aff65c6)
1205[info] |Generated Mongo query:
1206[info] |{ "stringField": { "$regex": "SomeString" } }
1207[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:762:31
1208[info] 762 | val q = query[TestClass](s => Pattern.matches("SomeString", s.stringField))
1209[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1210[info] |Optimized AST:
1211[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@6824354c)
1212[info] |Generated Mongo query:
1213[info] |{ "stringField": { "$regex": "SomeString" } }
1214[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:779:31
1215[info] 779 | val q = query[TestClass](s => pattern.matcher(s.stringField).matches())
1216[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1217[info] |Optimized AST:
1218[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@3c02dc8d)
1219[info] |Generated Mongo query:
1220[info] |{ "stringField": { "$regex": "SomeString", "$options": "ix" } }
1221[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:794:34
1222[info] 794 | val q = query[TestClass](_.stringField.matches(pattern))
1223[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1224[info] |Optimized AST:
1225[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@4c4c9037)
1226[info] |Generated Mongo query:
1227[info] |{ "stringField": { "$regex": "?" "$options": "?" } }
1228[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:811:34
1229[info] 811 | val q = query[TestClass](s => pattern.matcher(s.stringField).matches())
1230[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1231[info] |Optimized AST:
1232[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@4b64fccf)
1233[info] |Generated Mongo query:
1234[info] |{ "stringField": { "$regex": "?" "$options": "?" } }
1235[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:828:34
1236[info] 828 | val q = query[TestClass](s => pattern.matcher(s.stringField).matches())
1237[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1238[info] |Optimized AST:
1239[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@14111f8c)
1240[info] |Generated Mongo query:
1241[info] |{ "stringField": { "$regex": "?" "$options": "?" } }
1242[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:843:34
1243[info] 843 | val q = query[TestClass](s => Pattern.matches(pattern, s.stringField))
1244[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1245[info] |Optimized AST:
1246[info] |Regex(x = Prop(path = "stringField"), pattern = scala.quoted.runtime.impl.ExprImpl@a92cd35)
1247[info] |Generated Mongo query:
1248[info] |{ "stringField": { "$regex": "?" "$options": "?" } }
1249[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:858:31
1250[info] 858 | val q = query[TestClass](_.intField.isInstanceOf[MongoType.INT32])
1251[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1252[info] |Optimized AST:
1253[info] |TypeCheck(x = Prop(path = "intField"), typeInfo = oolong.DefaultAstParser$$anon$1@5c004ab2)
1254[info] |Generated Mongo query:
1255[info] |{ "intField": { "$type": 16 } }
1256[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:871:31
1257[info] 871 | val q = query[TestClass](_.innerClassField.isInstanceOf[MongoType.DOCUMENT])
1258[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1259[info] |Optimized AST:
1260[info] |TypeCheck(x = Prop(path = "innerClassField"), typeInfo = oolong.DefaultAstParser$$anon$1@3239317e)
1261[info] |Generated Mongo query:
1262[info] |{ "innerClassField": { "$type": 3 } }
1263[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:884:31
1264[info] 884 | val q = query[TestClass](_.intField % lift(4) == 5.2)
1265[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1266[info] |Optimized AST:
1267[info] |Mod(
1268[info] | x = Prop(path = "intField"),
1269[info] | divisor = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@4a3df0e8),
1270[info] | remainder = Constant(s = 5.2)
1271[info] |)
1272[info] |Generated Mongo query:
1273[info] |{ "intField": { "$mod": [?,5.2] } }
1274[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:906:31
1275[info] 906 | val q = query[TestClass](_.doubleField % 5.2 == lift(123L))
1276[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1277[info] |Optimized AST:
1278[info] |Mod(
1279[info] | x = Prop(path = "doubleField"),
1280[info] | divisor = Constant(s = 5.2),
1281[info] | remainder = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@50279c45)
1282[info] |)
1283[info] |Generated Mongo query:
1284[info] |{ "doubleField": { "$mod": [5.2,?] } }
1285[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:938:26
1286[info] 938 | val q = query[Test](_.field % 2 == 2)
1287[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1288[info] |Optimized AST:
1289[info] |Mod(x = Prop(path = "field"), divisor = Constant(s = 2), remainder = Constant(s = 2))
1290[info] |Generated Mongo query:
1291[info] |{ "field": { "$mod": [2,2] } }
1292[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:961:26
1293[info] 961 | val q = query[Test](_.array.exists(s => s.a > 2 && s.b == "123"))
1294[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1295[info] | Optimized AST:
1296[info] | ElemMatch(
1297[info] | x = Prop(path = "array"),
1298[info] | y = And(
1299[info] | children = List(
1300[info] | Gt(x = Prop(path = "a"), y = Constant(s = 2)),
1301[info] | Eq(x = Prop(path = "b"), y = Constant(s = "123"))
1302[info] | )
1303[info] | )
1304[info] | )
1305[info] | Generated Mongo query:
1306[info] | { "array": { "$elemMatch": { "a": { "$gt": 2 }, "b": "123" } } }
1307[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:981:26
1308[info] 981 | val q = query[Test](_.array.exists(s => s > 2 && s <= 100))
1309[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1310[info] | Optimized AST:
1311[info] | ElemMatch(
1312[info] | x = Prop(path = "array"),
1313[info] | y = And(
1314[info] | children = List(
1315[info] | Gt(x = Prop(path = ""), y = Constant(s = 2)),
1316[info] | Lte(x = Prop(path = ""), y = Constant(s = 100))
1317[info] | )
1318[info] | )
1319[info] | )
1320[info] | Generated Mongo query:
1321[info] | { "array": { "$elemMatch": { "$gt": 2, "$lte": 100 } } }
1322[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1002:26
1323[info] 1002 | val q = query[Test](_.array.exists(s => s.a > 2 && s.a < 100 && s.b == "123"))
1324[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1325[info] |Optimized AST:
1326[info] |ElemMatch(
1327[info] | x = Prop(path = "array"),
1328[info] | y = And(
1329[info] | children = List(
1330[info] | Gt(x = Prop(path = "a"), y = Constant(s = 2)),
1331[info] | Lt(x = Prop(path = "a"), y = Constant(s = 100)),
1332[info] | Eq(x = Prop(path = "b"), y = Constant(s = "123"))
1333[info] | )
1334[info] | )
1335[info] |)
1336[info] |Generated Mongo query:
1337[info] |{ "array": { "$elemMatch": { "$and": [ { "a": { "$gt": 2 } }, { "a": { "$lt": 100 } }, { "b": "123" } ] } } }
1338[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1027:26
1339[info] 1027 | val q = query[Test](_.array.exists(s => s < 100))
1340[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1341[info] |Optimized AST:
1342[info] |ElemMatch(x = Prop(path = "array"), y = Lt(x = Prop(path = ""), y = Constant(s = 100)))
1343[info] |Generated Mongo query:
1344[info] |{ "array": { "$lt": 100 } }
1345[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1041:26
1346[info] 1041 | val q = query[Base](_.array0.exists(_.array1.exists(_ > 100)))
1347[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1348[info] |Optimized AST:
1349[info] |ElemMatch(
1350[info] | x = Prop(path = "array0"),
1351[info] | y = ElemMatch(x = Prop(path = "array1"), y = Gt(x = Prop(path = ""), y = Constant(s = 100)))
1352[info] |)
1353[info] |Generated Mongo query:
1354[info] |{ "array0.array1": { "$gt": 100 } }
1355[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1058:35
1356[info] 1058 | val q = query[LotteryTicket](lt => winningNumbers.forall(lt.numbers.contains))
1357[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1358[info] | Optimized AST:
1359[info] | All(
1360[info] | x = Prop(path = "numbers"),
1361[info] | y = List(
1362[info] | Constant(s = 4),
1363[info] | Constant(s = 8),
1364[info] | Constant(s = 15),
1365[info] | Constant(s = 16),
1366[info] | Constant(s = 23),
1367[info] | Constant(s = 42)
1368[info] | )
1369[info] | )
1370[info] | Generated Mongo query:
1371[info] | { "numbers": { "$all": [4, 8, 15, 16, 23, 42] } }
1372[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1084:35
1373[info] 1084 | val q = query[LotteryTicket](lt => lift(winningNumbers).forall(lt.numbers.contains))
1374[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1375[info] |Optimized AST:
1376[info] |All(
1377[info] | x = Prop(path = "numbers"),
1378[info] | y = ScalaCodeIterable(code = scala.quoted.runtime.impl.ExprImpl@37510f84)
1379[info] |)
1380[info] |Generated Mongo query:
1381[info] |{ "numbers": { "$all": [?] } }
1382[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1111:33
1383[info] 1111 | val q = query[LotteryTickets](lts =>
1384[info] | ^
1385[info] |Optimized AST:
1386[info] |And(
1387[info] | children = List(
1388[info] | ElemMatch(
1389[info] | x = Prop(path = "tickets"),
1390[info] | y = Size(x = Prop(path = "numbers"), y = Constant(s = 20))
1391[info] | ),
1392[info] | ElemMatch(
1393[info] | x = Prop(path = "tickets"),
1394[info] | y = And(
1395[info] | children = List(
1396[info] | Size(x = Prop(path = "numbers"), y = Constant(s = 10)),
1397[info] | Eq(x = Prop(path = "series"), y = Constant(s = 99L))
1398[info] | )
1399[info] | )
1400[info] | )
1401[info] | )
1402[info] |)
1403[info] |Generated Mongo query:
1404[info] |{ "tickets": { "$all": [{ "$elemMatch": { "numbers": { "$size": 20 } } }, { "$elemMatch": { "numbers": { "$size": 10 }, "series": 99 } }] } }
1405[info] |
1406[info] 1112 | lts.tickets.exists(_.numbers.size == 20) && lts.tickets.exists(ticket =>
1407[info] 1113 |...
1408[info] 1115 | )
1409[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1153:33
1410[info] 1153 | val q = query[LottoTicket](lt => Vector(firstColumn, secondColumn).forall(lt.numbers.contains))
1411[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1412[info] |Optimized AST:
1413[info] |All(
1414[info] | x = Prop(path = "numbers"),
1415[info] | y = List(
1416[info] | Collection(s = List(Constant(s = 1), Constant(s = 7), Constant(s = 9))),
1417[info] | Collection(s = List(Constant(s = 11), Constant(s = 17), Constant(s = 18)))
1418[info] | )
1419[info] |)
1420[info] |Generated Mongo query:
1421[info] |{ "numbers": { "$all": [[ 1,7,9 ], [ 11,17,18 ]] } }
1422[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1172:28
1423[info] 1172 | val q = query[BDTest](_.field == BigDecimal(4.2))
1424[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1425[info] | Optimized AST:
1426[info] | Eq(x = Prop(path = "field"), y = Constant(s = 4.2))
1427[info] | Generated Mongo query:
1428[info] | { "field": 4.2 }
1429[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1186:28
1430[info] 1186 | val q = query[BITest](_.field == BigInt(2_000_000_000L))
1431[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1432[info] | Optimized AST:
1433[info] | Eq(x = Prop(path = "field"), y = Constant(s = 2000000000L))
1434[info] | Generated Mongo query:
1435[info] | { "field": 2000000000 }
1436[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1202:36
1437[info] 1202 | val q = query[InstantTest](_.field.isBefore(lift(instant)))
1438[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1439[info] |Optimized AST:
1440[info] |Lt(x = Prop(path = "field"), y = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@470dd3a))
1441[info] |Generated Mongo query:
1442[info] |{ "field": { "$lt": ? } }
1443[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1219:36
1444[info] 1219 | val q = query[InstantTest](_.field.isAfter(lift(instant)))
1445[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1446[info] |Optimized AST:
1447[info] |Gt(x = Prop(path = "field"), y = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@6ca25c4f))
1448[info] |Generated Mongo query:
1449[info] |{ "field": { "$gt": ? } }
1450[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/QuerySpec.scala:1237:21
1451[info] 1237 | query[NameTest](nt => Pattern.compile(n, Pattern.CASE_INSENSITIVE).matcher(nt.name).matches())
1452[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1453[info] |Optimized AST:
1454[info] |Regex(x = Prop(path = "name"), pattern = scala.quoted.runtime.impl.ExprImpl@67df344d)
1455[info] |Generated Mongo query:
1456[info] |{ "name": { "$regex": "?" "$options": "?" } }
1457[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:55:32
1458[info] 55 | val q = update[TestClass](_.setOpt(_.optionField, 2L))
1459[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1460[info] |AST:
1461[info] |Update(ops = List(Set(prop = Prop(path = "optionField"), expr = Constant(t = 2L))))
1462[info] |Generated Mongo query:
1463[info] |{
1464[info] | "$set": { "optionField": 2 }
1465[info] |}
1466[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:66:29
1467[info] 66 | val q = update[TestClass](
1468[info] | ^
1469[info] |AST:
1470[info] |Update(
1471[info] | ops = List(
1472[info] | Set(
1473[info] | prop = Prop(path = "optionInnerClassField"),
1474[info] | expr = ScalaCode(code = scala.quoted.runtime.impl.ExprImpl@3656be33)
1475[info] | )
1476[info] | )
1477[info] |)
1478[info] |Generated Mongo query:
1479[info] |{
1480[info] | "$set": { "optionInnerClassField": {"fieldOne": "some", "fieldTwo": 2, "fieldThree": null, "fieldFour": Function(LocalDate.now()), "fieldFive": {"fieldOne": 3}, "fieldSix": ["1", "2"]} }
1481[info] |}
1482[info] |
1483[info] 67 | _.set(
1484[info] 68 |...
1485[info] 71 | )
1486[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:100:32
1487[info] 100 | val q = update[TestClass](_.inc(_.intField, 1))
1488[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1489[info] |AST:
1490[info] |Update(ops = List(Inc(prop = Prop(path = "intField"), expr = Constant(t = 1))))
1491[info] |Generated Mongo query:
1492[info] |{
1493[info] | "$inc": { "intField": 1 }
1494[info] |}
1495[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:111:32
1496[info] 111 | val q = update[TestClass](_.mul(_.intField, 10))
1497[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1498[info] |AST:
1499[info] |Update(ops = List(Mul(prop = Prop(path = "intField"), expr = Constant(t = 10))))
1500[info] |Generated Mongo query:
1501[info] |{
1502[info] | "$mul": { "intField": 10 }
1503[info] |}
1504[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:122:32
1505[info] 122 | val q = update[TestClass](_.max(_.intField, 10))
1506[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1507[info] |AST:
1508[info] |Update(ops = List(Max(prop = Prop(path = "intField"), expr = Constant(t = 10))))
1509[info] |Generated Mongo query:
1510[info] |{
1511[info] | "$max": { "intField": 10 }
1512[info] |}
1513[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:133:32
1514[info] 133 | val q = update[TestClass](_.min(_.intField, 10))
1515[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1516[info] |AST:
1517[info] |Update(ops = List(Min(prop = Prop(path = "intField"), expr = Constant(t = 10))))
1518[info] |Generated Mongo query:
1519[info] |{
1520[info] | "$min": { "intField": 10 }
1521[info] |}
1522[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:144:32
1523[info] 144 | val q = update[TestClass](_.rename(_.intField, "newFieldName"))
1524[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1525[info] |AST:
1526[info] |Update(ops = List(Rename(prop = Prop(path = "intField"), expr = Constant(t = "newFieldName"))))
1527[info] |Generated Mongo query:
1528[info] |{
1529[info] | "$rename": { "intField": "newFieldName" }
1530[info] |}
1531[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:155:32
1532[info] 155 | val q = update[TestClass](_.unset(_.intField))
1533[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1534[info] | AST:
1535[info] | Update(ops = List(Unset(prop = Prop(path = "intField"))))
1536[info] | Generated Mongo query:
1537[info] | {
1538[info] | "$unset": { "intField": "" }
1539[info] | }
1540[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:166:32
1541[info] 166 | val q = update[TestClass](_.setOnInsert(_.intField, 14))
1542[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1543[info] |AST:
1544[info] |Update(ops = List(SetOnInsert(prop = Prop(path = "intField"), expr = Constant(t = 14))))
1545[info] |Generated Mongo query:
1546[info] |{
1547[info] | "$setOnInsert": { "intField": 14 }
1548[info] |}
1549[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:177:32
1550[info] 177 | val q = update[TestClass](_.addToSet(_.listField, 1))
1551[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1552[info] |AST:
1553[info] |Update(
1554[info] | ops = List(
1555[info] | AddToSet(prop = Prop(path = "listField"), expr = Constant(t = 1), multipleValues = false)
1556[info] | )
1557[info] |)
1558[info] |Generated Mongo query:
1559[info] |{
1560[info] | "$addToSet": { "listField": 1 }
1561[info] |}
1562[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:187:32
1563[info] 187 | val q = update[TestClass](_.addToSet(_.nestedListField, List(1, 2, 3)))
1564[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1565[info] |AST:
1566[info] |Update(
1567[info] | ops = List(
1568[info] | AddToSet(
1569[info] | prop = Prop(path = "nestedListField"),
1570[info] | expr = UIterable(t = List(Constant(t = 1), Constant(t = 2), Constant(t = 3))),
1571[info] | multipleValues = false
1572[info] | )
1573[info] | )
1574[info] |)
1575[info] |Generated Mongo query:
1576[info] |{
1577[info] | "$addToSet": { "nestedListField": [1,2,3] }
1578[info] |}
1579[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:197:32
1580[info] 197 | val q = update[TestClass](_.addToSetAll(_.listField, List(1)))
1581[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1582[info] | AST:
1583[info] | Update(
1584[info] | ops = List(
1585[info] | AddToSet(
1586[info] | prop = Prop(path = "listField"),
1587[info] | expr = UIterable(t = List(Constant(t = 1))),
1588[info] | multipleValues = true
1589[info] | )
1590[info] | )
1591[info] | )
1592[info] | Generated Mongo query:
1593[info] | {
1594[info] | "$addToSet": { "listField": { "$each" : [1] } }
1595[info] | }
1596[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:207:32
1597[info] 207 | val q = update[TestClass](_.addToSetAll(_.nestedListField, lift(List(List(1, 2, 3)))))
1598[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1599[info] |AST:
1600[info] |Update(
1601[info] | ops = List(
1602[info] | AddToSet(
1603[info] | prop = Prop(path = "nestedListField"),
1604[info] | expr = ScalaCodeIterable(code = scala.quoted.runtime.impl.ExprImpl@30ec17f9),
1605[info] | multipleValues = true
1606[info] | )
1607[info] | )
1608[info] |)
1609[info] |Generated Mongo query:
1610[info] |{
1611[info] | "$addToSet": { "nestedListField": { "$each" : [ ? ] } }
1612[info] |}
1613[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:222:32
1614[info] 222 | val q = update[TestClass](_.popHead(_.nestedListField))
1615[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1616[info] |AST:
1617[info] |Update(ops = List(Pop(prop = Prop(path = "nestedListField"), remove = First)))
1618[info] |Generated Mongo query:
1619[info] |{
1620[info] | "$pop": { "nestedListField": -1 }
1621[info] |}
1622[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:236:32
1623[info] 236 | val q = update[TestClass](_.popLast(_.nestedListField))
1624[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1625[info] |AST:
1626[info] |Update(ops = List(Pop(prop = Prop(path = "nestedListField"), remove = Last)))
1627[info] |Generated Mongo query:
1628[info] |{
1629[info] | "$pop": { "nestedListField": 1 }
1630[info] |}
1631[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:250:32
1632[info] 250 | val q = update[TestClass](_.pull(_.listField, _ == 2))
1633[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1634[info] |AST:
1635[info] |Update(
1636[info] | ops = List(
1637[info] | Pull(prop = Prop(path = "listField"), cond = Eq(x = Prop(path = ""), y = Constant(s = 2)))
1638[info] | )
1639[info] |)
1640[info] |Generated Mongo query:
1641[info] |{
1642[info] | "$pull": { "listField": { "$eq": 2 } }
1643[info] |}
1644[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:264:32
1645[info] 264 | val q = update[TestClass](_.pull(_.classInnerClassField, _.fieldOne == "1"))
1646[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1647[info] | AST:
1648[info] | Update(
1649[info] | ops = List(
1650[info] | Pull(
1651[info] | prop = Prop(path = "classInnerClassField"),
1652[info] | cond = Eq(x = Prop(path = "fieldOne"), y = Constant(s = "1"))
1653[info] | )
1654[info] | )
1655[info] | )
1656[info] | Generated Mongo query:
1657[info] | {
1658[info] | "$pull": { "classInnerClassField": { "fieldOne": "1" } }
1659[info] | }
1660[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:278:32
1661[info] 278 | val q = update[TestClass](_.pullAll(_.listField, Vector(1, 2, 3)))
1662[info] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1663[info] |AST:
1664[info] |Update(
1665[info] | ops = List(
1666[info] | PullAll(
1667[info] | prop = Prop(path = "listField"),
1668[info] | expr = UIterable(t = List(Constant(t = 1), Constant(t = 2), Constant(t = 3)))
1669[info] | )
1670[info] | )
1671[info] |)
1672[info] |Generated Mongo query:
1673[info] |{
1674[info] | "$pullAll": { "listField": [1,2,3] }
1675[info] |}
1676[info] -- Info: /build/repo/oolong-mongo/src/test/scala/oolong/mongo/UpdateSpec.scala:292:29
1677[info] 292 | val q = update[TestClass](
1678[info] | ^
1679[info] | AST:
1680[info] | Update(
1681[info] | ops = List(
1682[info] | Unset(prop = Prop(path = "dateField")),
1683[info] | Set(prop = Prop(path = "optionField"), expr = Constant(t = 2L)),
1684[info] | Set(prop = Prop(path = "intField"), expr = Constant(t = 19))
1685[info] | )
1686[info] | )
1687[info] | Generated Mongo query:
1688[info] | {
1689[info] | "$set": { "optionField": 2, "intField": 19 },
1690[info] | "$unset": { "dateField": "" }
1691[info] | }
1692[info] |
1693[info] 293 | _.unset(_.dateField)
1694[info] 294 |...
1695[info] 296 | )
1696[warn] two warnings found
1697[info] done compiling
1698
1699************************
1700Build summary:
1701[{
1702 "module": "oolong-bson",
1703 "compile": {"status": "ok", "tookMs": 12648, "warnings": 11, "errors": 0, "sourceVersion": "3.8"},
1704 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1705 "test-compile": {"status": "ok", "tookMs": 6306, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
1706 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1707 "publish": {"status": "skipped", "tookMs": 0},
1708 "metadata": {
1709 "crossScalaVersions": ["2.12.20"]
1710}
1711},{
1712 "module": "oolong-bson-refined",
1713 "compile": {"status": "ok", "tookMs": 808, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1714 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1715 "test-compile": {"status": "ok", "tookMs": 1062, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1716 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1717 "publish": {"status": "skipped", "tookMs": 0},
1718 "metadata": {
1719 "crossScalaVersions": ["2.12.20"]
1720}
1721},{
1722 "module": "oolong-core",
1723 "compile": {"status": "ok", "tookMs": 3738, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
1724 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1725 "test-compile": {"status": "ok", "tookMs": 1309, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1726 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1727 "publish": {"status": "skipped", "tookMs": 0},
1728 "metadata": {
1729 "crossScalaVersions": ["2.12.20"]
1730}
1731},{
1732 "module": "oolong-mongo",
1733 "compile": {"status": "ok", "tookMs": 4300, "warnings": 2, "errors": 0, "sourceVersion": "3.8"},
1734 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1735 "test-compile": {"status": "ok", "tookMs": 13567, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
1736 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1737 "publish": {"status": "skipped", "tookMs": 0},
1738 "metadata": {
1739 "crossScalaVersions": ["2.12.20"]
1740}
1741}]
1742************************
1743[success] Total time: 56 s, completed Jan 10, 2026, 1:14:20 AM
1744[0JChecking patch project/plugins.sbt...
1745Checking patch project/build.properties...
1746Checking patch build.sbt...
1747Applied patch project/plugins.sbt cleanly.
1748Applied patch project/build.properties cleanly.
1749Applied patch build.sbt cleanly.