From 178a0d4cb5d8b8600dd2ae78716d2cf992c1345d Mon Sep 17 00:00:00 2001 From: Jake Schwartz Date: Tue, 8 Feb 2022 11:15:00 +0000 Subject: [PATCH] Include default match statement to CaseClassCodec macro Also add compile warnings to the build. JAVA-4319 --- .../scala/bson/codecs/macrocodecs/CaseClassCodec.scala | 2 +- build.gradle | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/bson-scala/src/main/scala/org/mongodb/scala/bson/codecs/macrocodecs/CaseClassCodec.scala b/bson-scala/src/main/scala/org/mongodb/scala/bson/codecs/macrocodecs/CaseClassCodec.scala index b141acdafa1..b62883abb9a 100644 --- a/bson-scala/src/main/scala/org/mongodb/scala/bson/codecs/macrocodecs/CaseClassCodec.scala +++ b/bson-scala/src/main/scala/org/mongodb/scala/bson/codecs/macrocodecs/CaseClassCodec.scala @@ -350,7 +350,7 @@ private[codecs] object CaseClassCodec { val instanceValue = value.asInstanceOf[${classType}] ..${writeClassValues(fields, ignoredFields(classType))}""" }.toSeq - } + } :+ cq"""_ => throw new BsonInvalidOperationException("Unexpected class type: " + className)""" q""" writer.writeStartDocument() this.writeClassFieldName(writer, className, encoderContext) diff --git a/build.gradle b/build.gradle index 296dfa5e16c..3a9c29f885d 100644 --- a/build.gradle +++ b/build.gradle @@ -128,6 +128,15 @@ configure(scalaProjects) { tasks.withType(ScalaCompile) { scalaCompileOptions.deprecation = false + if(scalaVersion.startsWith("2.13")) { + scalaCompileOptions.additionalParameters = [ + "-feature", + "-unchecked", + "-language:reflectiveCalls", + "-Wconf:cat=deprecation:ws,any:e", + "-Xlint:strict-unsealed-patmat" + ] + } } tasks.withType(GenerateModuleMetadata) {