Skip to content

undefined error if enable coverage #21695

Open
@xuwei-k

Description

@xuwei-k

Compiler version

  • 3.5.2-RC1
  • 3.6.0-RC1-bin-20241001-8244d67-NIGHTLY

Minimized code

build.sbt

scalacOptions ++= Seq("-coverage-out:coverage-out")

libraryDependencies += "io.grpc" % "grpc-services" % "1.68.0"

scalaVersion := "3.5.2-RC1"

MyServer.scala

package example

import io.grpc.Server
import io.grpc.ServerBuilder
import io.grpc.ServerInterceptors
import io.grpc.ServerServiceDefinition
import io.grpc.protobuf.services.ProtoReflectionService
import io.grpc.util.TransmitStatusRuntimeExceptionInterceptor

object MyServer {

  def createServer(port: Int, services: List[ServerServiceDefinition]): Server = {
    services
      .foldLeft(ServerBuilder.forPort(port))((builder, service) =>
        builder.addService(
          ServerInterceptors.intercept(
            service,
            TransmitStatusRuntimeExceptionInterceptor.instance()
          )
        )
      )
      .addService(ProtoReflectionService.newInstance())
      .build()
  }

}

Output (click arrow to expand)

[error] -- Error: scala3-coverage-bug/MyServer.scala:23:12 ----------------
[error] 13 |    services
[error] 14 |      .foldLeft(ServerBuilder.forPort(port))((builder, service) =>
[error] 15 |        builder.addService(
[error] 16 |          ServerInterceptors.intercept(
[error] 17 |            service,
[error] 18 |            TransmitStatusRuntimeExceptionInterceptor.instance()
[error] 19 |          )
[error] 20 |        )
[error] 21 |      )
[error] 22 |      .addService(ProtoReflectionService.newInstance())
[error] 23 |      .build()
[error]    |    ^
[error]    |undefined: {
[error]    |  val $3$: io.grpc.ServerBuilder[?] =
[error]    |    {
[error]    |      val z$1: io.grpc.ServerBuilder[?] =
[error]    |        {
[error]    |          scala.runtime.coverage.Invoker.invoked(3, "coverage-out")
[error]    |          io.grpc.ServerBuilder.forPort(port)
[error]    |        }
[error]    |      val op$1:
[error]    |        ((io.grpc.ServerBuilder[?], io.grpc.ServerServiceDefinition) =>
[error]    |          io.grpc.ServerBuilder[?])
[error]    |       =
[error]    |        {
[error]    |          def $anonfun(builder: io.grpc.ServerBuilder[?],
[error]    |            service: io.grpc.ServerServiceDefinition): io.grpc.ServerBuilder[?]
[error]    |             =
[error]    |            {
[error]    |              val $2$: io.grpc.ServerServiceDefinition =
[error]    |                {
[error]    |                  val $1$: Seq[io.grpc.ServerInterceptor] =
[error]    |                    [
[error]    |                      {
[error]    |                        scala.runtime.coverage.Invoker.invoked(6, "coverage-out"
[error]    |                          )
[error]    |                        io.grpc.util.TransmitStatusRuntimeExceptionInterceptor.
[error]    |                          instance()
[error]    |                      }
[error]    |                     : io.grpc.ServerInterceptor]
[error]    |                  scala.runtime.coverage.Invoker.invoked(5, "coverage-out")
[error]    |                  io.grpc.ServerInterceptors.intercept(service, $1$*)
[error]    |                }
[error]    |              scala.runtime.coverage.Invoker.invoked(4, "coverage-out")
[error]    |              builder.addService($2$)
[error]    |            }
[error]    |          closure($anonfun)
[error]    |        }
[error]    |      scala.runtime.coverage.Invoker.invoked(2, "coverage-out")
[error]    |      services.foldLeft[io.grpc.ServerBuilder[?]](z$1)(op$1)
[error]    |    }
[error]    |  val $4$: io.grpc.BindableService =
[error]    |    {
[error]    |      scala.runtime.coverage.Invoker.invoked(7, "coverage-out")
[error]    |      io.grpc.protobuf.services².ProtoReflectionService.newInstance()
[error]    |    }
[error]    |  scala.runtime.coverage.Invoker.invoked(1, "coverage-out")
[error]    |  $3$.addService²($4$)
[error]    |}.build # -1: TermRef(TypeRef(ThisType(TypeRef(NoPrefix,module class <special-ops>)),type <FromJavaObject>),build) at instrumentCoverage
[error]    |
[error]    |where:    addService  is a method in class ServerBuilder
[error]    |          addService² is a method in class ServerBuilder
[error]    |          services    is a parameter in method createServer
[error]    |          services²   is a package in package io.grpc.protobuf
[error] one error found
[error] (Compile / compileIncremental) Compilation failed

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:coverageCode coverage, see https://dotty.epfl.ch/docs/internals/coverage.htmlcompat:javaitype:bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions