Skip to content

Commit cff1822

Browse files
avdvrozza
authored andcommitted
Fix UninitializedFieldError in MacroCodecs under -Xcheckinit
SCALA-542
1 parent c7af439 commit cff1822

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

bson/src/main/scala/org/mongodb/scala/bson/codecs/macrocodecs/CaseClassCodec.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,11 +307,12 @@ private[codecs] object CaseClassCodec {
307307
import org.bson.codecs.configuration.CodecRegistry
308308
import org.mongodb.scala.bson.codecs.macrocodecs.MacroCodec
309309

310-
case class $codecName(codecRegistry: CodecRegistry) extends MacroCodec[$classTypeName] {
310+
final case class $codecName(codecRegistry: CodecRegistry) extends {
311+
val encoderClass = classOf[$classTypeName]
312+
} with MacroCodec[$classTypeName] {
311313
val caseClassesMap = $caseClassesMap
312314
val classToCaseClassMap = $classToCaseClassMap
313315
val classFieldTypeArgsMap = $createClassFieldTypeArgsMap
314-
val encoderClass = classOf[$classTypeName]
315316
def getInstance(className: String, fieldData: Map[String, Any]) = $getInstance
316317
def writeCaseClassData(className: String, writer: BsonWriter, value: $mainType, encoderContext: EncoderContext) = $writeValue
317318
}

docs/reference/content/changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Changes between released versions
1515
* Updated DEFAULT_CODEC_REGISTRY order, as upstream BsonCodec captures all Bson instances and priority needs to be lower.
1616
* Support $merge pipeline stage in aggregations [SCALA-473](https://jira.mongodb.org/browse/SCALA-473)
1717
* Deprecated BsonArray.apply(Iterable[BsonValue]) added BsonArray.fromIterable [SCALA-531](https://jira.mongodb.org/browse/SCALA-531)
18+
* Fix `UninitializedFieldError` in MacroCodecs under `-Xcheckinit` [SCALA-542](https://jira.mongodb.org/browse/SCALA-542)
1819

1920
### 2.6.0
2021
* Updated MongoDB Driver Async to 3.10.0

project/MongoScalaBuild.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ object MongoScalaBuild extends Build {
4747
scalacOptions in IntegrationTest := scalacOptionsTest
4848
)
4949

50-
val scalacOptionsTest: Seq[String] = Seq( "-unchecked", "-deprecation", "-feature", "-Xlint:-missing-interpolator,_")
50+
val scalacOptionsTest: Seq[String] = Seq( "-unchecked", "-deprecation", "-feature", "-Xlint:-missing-interpolator,_", "-Xcheckinit")
5151

5252
def scalacOptionsVersion(scalaVersion: String): Seq[String] = {
5353
Seq( "-unchecked", "-deprecation", "-feature", "-Ywarn-dead-code"

0 commit comments

Comments
 (0)