Skip to content

Commit 876a594

Browse files
committed
Fix scalapb-runtime 0.11.17 errors
There were API changes from scalapb-runtime 0.9.7 causing the following errors: ```txt ERROR: .../test/src/main/scala/scalarules/test/extra_protobuf_generator/BUILD:3:14: scala @//test/src/main/scala/scalarules/test/extra_protobuf_generator:extra_protobuf_generator failed: (Exit 1): scalac failed: error executing Scalac command (from target //test/src/main/scala/scalarules/test/extra_protobuf_generator:extra_protobuf_generator) bazel-out/darwin_arm64-opt-exec-ST-a828a81199fe/bin/src/java/io/bazel/rulesscala/scalac/scalac ... (remaining 1 argument skipped) test/src/main/scala/scalarules/test/extra_protobuf_generator/ExtraProtobufGenerator.scala:20: error: value nameSymbol is not a member of com.google.protobuf.Descriptors.Descriptor .add(s"final case object Custom${message.nameSymbol}{}") ^ test/src/main/scala/scalarules/test/extra_protobuf_generator/ExtraProtobufGenerator.scala:34: error: value fileDescriptorObjectName is not a member of com.google.protobuf.Descriptors.FileDescriptor b.setName(file.scalaDirectory + "/Custom" + file.fileDescriptorObjectName + ".scala") ^ test/src/main/scala/scalarules/test/extra_protobuf_generator/ExtraProtobufGenerator.scala:66: error: value FileDescriptorPimp is not a member of scalapb.compiler.DescriptorImplicits import implicits.FileDescriptorPimp ^ ``` Since Scala 2.11 can't advance past scalapb-runtime 0.9.8, we use `select_for_scala_version` to select the appropriate `ProtobufAdapter` to maintain API compatibility. Also, `import implicits.FileDescriptorPimp` turned out to be unnecessary after all, even under Scala 2.11.
1 parent 01ac301 commit 876a594

File tree

4 files changed

+38
-4
lines changed

4 files changed

+38
-4
lines changed

test/src/main/scala/scalarules/test/extra_protobuf_generator/BUILD

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
load("//scala:scala.bzl", "scala_library")
2+
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")
23

34
scala_library(
45
name = "extra_protobuf_generator",
5-
srcs = ["ExtraProtobufGenerator.scala"],
6+
srcs = select_for_scala_version(
7+
any_2_11 = ["ProtobufAdapter_2_11.scala"],
8+
since_2_12 = ["ProtobufAdapter.scala"],
9+
) + ["ExtraProtobufGenerator.scala"],
610
visibility = ["//visibility:public"],
711
deps = [
812
"//scala_proto:scalapb_worker_deps",

test/src/main/scala/scalarules/test/extra_protobuf_generator/ExtraProtobufGenerator.scala

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@ class CustomProtobufGenerator(
1515
import implicits._
1616
import ProtobufGenerator._
1717

18+
val protobufAdapter = new ProtobufAdapter(implicits)
19+
1820
def printCustomMessage(printer: FunctionalPrinter, message: Descriptor): FunctionalPrinter = {
1921
printer
20-
.add(s"final case object Custom${message.nameSymbol}{}")
22+
.add(s"final case object Custom${protobufAdapter.nameSymbol(message)}{}")
2123
}
2224

2325
override def generateSingleScalaFileForFileDescriptor(
@@ -31,7 +33,10 @@ class CustomProtobufGenerator(
3133
.result()
3234

3335
val b = CodeGeneratorResponse.File.newBuilder()
34-
b.setName(file.scalaDirectory + "/Custom" + file.fileDescriptorObjectName + ".scala")
36+
b.setName(
37+
file.scalaDirectory + "/Custom" +
38+
protobufAdapter.fileDescriptorObjectName(file) + ".scala"
39+
)
3540
b.setContent(code)
3641
List(b.build)
3742
}
@@ -79,7 +84,6 @@ object ExtraProtobufGenerator extends ProtocCodeGenerator {
7984
val generator = new CustomProtobufGenerator(params, implicits)
8085
val validator = new ProtoValidation(implicits)
8186
validator.validateFiles(filesByName.values.toSeq)
82-
import implicits.FileDescriptorPimp
8387
request.getFileToGenerateList.asScala.foreach { name =>
8488
val file = filesByName(name)
8589
val responseFiles =
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package scalarules.test.extra_protobuf_generator
2+
3+
import com.google.protobuf.Descriptors.{Descriptor, FileDescriptor}
4+
import scalapb.compiler.DescriptorImplicits
5+
6+
class ProtobufAdapter(implicits: DescriptorImplicits) {
7+
import implicits._
8+
9+
def nameSymbol(message: Descriptor): String = message.scalaType.nameSymbol
10+
11+
def fileDescriptorObjectName(file: FileDescriptor): String =
12+
file.fileDescriptorObject.name
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package scalarules.test.extra_protobuf_generator
2+
3+
import com.google.protobuf.Descriptors.{Descriptor, FileDescriptor}
4+
import scalapb.compiler.DescriptorImplicits
5+
6+
class ProtobufAdapter(implicits: DescriptorImplicits) {
7+
import implicits._
8+
9+
def nameSymbol(message: Descriptor): String = message.nameSymbol
10+
11+
def fileDescriptorObjectName(file: FileDescriptor): String =
12+
file.fileDescriptorObjectName
13+
}

0 commit comments

Comments
 (0)