Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Severe compiler error" causing metals to crash #6816

Open
masonedmison opened this issue Oct 2, 2024 · 8 comments
Open

"Severe compiler error" causing metals to crash #6816

masonedmison opened this issue Oct 2, 2024 · 8 comments
Labels
bug Something that is making a piece of functionality unusable semanticdb Related to semanticdb usage in Metals

Comments

@masonedmison
Copy link
Contributor

Describe the bug

On a project I work on regularly, I've been noticing that metals seems to intermittently crash.

In the metals log file I see:

SEVERE: A severe compiler error occurred, full details of the error can be found in the error report /Users/medmison/mdm/worktrees/mdu/WH-77181/.metals/.reports/metals-full/2024-10-02/r_compiler-error_(wh-77
181)_14-16-22-682.md

The contents of this file (apologies in advance as it's quite long):
jar:file:///Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.14/scala-library-2.13.14-sources.jar!/scala/AnyRef.scala

java.lang.RuntimeException: unsupported type Any {

def $init$(): Unit
def equals(that: Any): Boolean
def hashCode: Int
def toString: String
def synchronized[T](body: => T): T
final def eq(that: AnyRef): Boolean
final def ne(that: AnyRef): Boolean
final def ==(that: Any): Boolean
protected def clone(): AnyRef
protected def finalize(): Unit
final def notify(): Unit
final def notifyAll(): Unit
final def wait(): Unit
final def wait(timeout: Long, nanos: Int): Unit
final def wait(timeout: Long): Unit
}: ClassInfoType(List(TypeRef(ThisType(scala), scala.Any, List())), Scope(TermName("$init$"), TermName("equals"), TermName("hashCode"), TermName("toString"), TermName("synchronized"), TermName("eq"), TermName("ne"), TermName("$eq$eq"), TermName("clone"), TermName("finalize"), TermName("notify"), TermName("notifyAll"), TermName("wait"), TermName("wait"), TermName("wait")), TypeName("AnyRef"))

occurred in the presentation compiler.

presentation compiler configuration:
Scala version: 2.13.14
Classpath:
/src/main/resources [exists ], /.bloop/wh-77181/bloop-bsp-clients-classes/classes-Metals-FCkX9EjBRVaH2loplP_wXw== [exists ], /Library/Caches/bloop/semanticdb/com.sourcegraph.semanticdb-javac.0.10.0/semanticdb-javac-0.10.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.14/scala-library-2.13.14.jar [exists ], /Library/Caches/Coursier/v1/https/nexusczr.shared-tooling.aws-us-east-1.usp.czrs.io%3A8443/repository/ivy-releases/com.williamhill/metadata-common_2.13/0.386/jars/metadata-common_2.13.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/qos/logback/logback-classic/1.5.6/logback-classic-1.5.6.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/co/fs2/fs2-core_2.13/3.10.2/fs2-core_2.13-3.10.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/co/fs2/fs2-io_2.13/3.10.2/fs2-io_2.13-3.10.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/atlassian/oai/swagger-request-validator-core/2.41.0/swagger-request-validator-core-2.41.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum_2.13/1.7.3/enumeratum_2.13-1.7.3.jar [exists ], /Library/Caches/Coursier/v1/https/nexusczr.shared-tooling.aws-us-east-1.usp.czrs.io%3A8443/repository/ivy-releases/com.bettingengine/be-ispecs-containers-kafka_2.13/0.3.5/jars/be-ispecs-containers-kafka_2.13.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/cb372/cats-retry_2.13/3.1.3/cats-retry_2.13-3.1.3.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/fd4s/fs2-kafka_2.13/3.5.1/fs2-kafka_2.13-3.5.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/fd4s/fs2-kafka-vulcan_2.13/3.5.1/fs2-kafka-vulcan_2.13-3.5.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/fd4s/vulcan_2.13/1.10.1/vulcan_2.13-1.10.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/fd4s/vulcan-generic_2.13/1.10.1/vulcan-generic_2.13-1.10.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/fs2-blobstore/s3_2.13/0.9.14/s3_2.13-0.9.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/googlecode/cqengine/cqengine/3.6.0/cqengine-3.6.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/ovoenergy/meters4s_2.13/2.0.0/meters4s_2.13-2.0.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/ovoenergy/meters4s-prometheus_2.13/2.0.0/meters4s-prometheus_2.13-2.0.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/akka/akka-http_2.13/10.5.3/akka-http_2.13-10.5.3.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/akka/akka-slf4j_2.13/2.8.5/akka-slf4j_2.13-2.8.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/akka/akka-stream_2.13/2.8.5/akka-stream_2.13-2.8.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/eu/timepit/refined_2.13/0.11.2/refined_2.13-0.11.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/eu/timepit/refined-cats_2.13/0.11.2/refined-cats_2.13-0.11.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-core_2.13/0.14.8/circe-core_2.13-0.14.8.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-parser_2.13/0.14.8/circe-parser_2.13-0.14.8.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/d2a4u/meteor-awssdk_2.13/2.0.22/meteor-awssdk_2.13-2.0.22.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/d2a4u/meteor-dynosaur_2.13/2.0.22/meteor-dynosaur_2.13-2.0.22.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/kamon/kamon-core_2.13/2.6.6/kamon-core_2.13-2.6.6.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/kamon/kamon-http4s-0.23_2.13/2.6.1/kamon-http4s-0.23_2.13-2.6.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/kamon/kamon-newrelic_2.13/2.6.6/kamon-newrelic_2.13-2.6.6.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/kamon/kamon-prometheus_2.13/2.6.6/kamon-prometheus_2.13-2.6.6.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/kamon/kamon-system-metrics_2.13/2.6.6/kamon-system-metrics_2.13-2.6.6.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/kamon/kamon-status-page_2.13/2.6.6/kamon-status-page_2.13-2.6.6.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/is/cir/ciris_2.13/3.6.0/ciris_2.13-3.6.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/is/cir/ciris-refined_2.13/3.6.0/ciris-refined_2.13-3.6.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/is/cir/ciris-enumeratum_2.13/3.6.0/ciris-enumeratum_2.13-3.6.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-circe_2.13/0.23.27/http4s-circe_2.13-0.23.27.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-dsl_2.13/0.23.27/http4s-dsl_2.13-0.23.27.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-ember-client_2.13/0.23.27/http4s-ember-client_2.13-0.23.27.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-ember-server_2.13/0.23.27/http4s-ember-server_2.13-0.23.27.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-prometheus-metrics_2.13/0.24.7/http4s-prometheus-metrics_2.13-0.24.7.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-server_2.13/0.23.27/http4s-server_2.13-0.23.27.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/systemfw/dynosaur-core_2.13/0.6.0/dynosaur-core_2.13-0.6.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-core_2.13/2.12.0/cats-core_2.13-2.12.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect_2.13/3.5.4/cats-effect_2.13-3.5.4.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/log4cats-slf4j_2.13/2.7.0/log4cats-slf4j_2.13-2.7.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/mouse_2.13/1.3.0/mouse_2.13-1.3.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/s3/2.26.5/s3-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/qos/logback/logback-core/1.5.6/logback-core-1.5.6.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.13/slf4j-api-2.0.13.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scodec/scodec-bits_2.13/1.1.38/scodec-bits_2.13-1.1.38.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/comcast/ip4s-core_2.13/3.5.0/ip4s-core_2.13-3.5.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/parser/v3/swagger-parser/2.1.22/swagger-parser-2.1.22.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/java-json-tools/json-schema-validator/2.2.14/json-schema-validator-2.2.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/guava/guava/33.0.0-jre/guava-33.0.0-jre.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.15.2/jackson-datatype-jdk8-2.15.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-macros_2.13/1.6.4/enumeratum-macros_2.13-1.6.4.jar [exists ], /Library/Caches/Coursier/v1/https/nexusczr.shared-tooling.aws-us-east-1.usp.czrs.io%3A8443/repository/ivy-releases/com.bettingengine/be-ispecs-containers-core_2.13/0.3.5/jars/be-ispecs-containers-core_2.13.jar [exists ], /Library/Caches/Coursier/v1/https/packages.confluent.io/maven/io/confluent/kafka-avro-serializer/7.6.0/kafka-avro-serializer-7.6.0.jar [exists ], /Library/Caches/Coursier/v1/https/packages.confluent.io/maven/org/apache/kafka/kafka-clients/7.6.0-ccs/kafka-clients-7.6.0-ccs.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.17.0/jackson-core-2.17.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.17.0/jackson-databind-2.17.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/avro/avro/1.11.3/avro-1.11.3.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-free_2.13/2.10.0/cats-free_2.13-2.10.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/propensive/magnolia_2.13/0.17.0/magnolia_2.13-0.17.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/chuusai/shapeless_2.13/2.3.12/shapeless_2.13-2.3.12.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/fs2-blobstore/core_2.13/0.9.14/core_2.13-0.9.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/co/fs2/fs2-reactive-streams_2.13/3.10.2/fs2-reactive-streams_2.13-3.10.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/googlecode/concurrent-trees/concurrent-trees/2.6.1/concurrent-trees-2.6.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/javassist/javassist/3.25.0-GA/javassist-3.25.0-GA.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.27.2.1/sqlite-jdbc-3.27.2.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/esotericsoftware/kryo/5.0.0-RC1/kryo-5.0.0-RC1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/de/javakaffee/kryo-serializers/0.45/kryo-serializers-0.45.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/antlr/antlr4-runtime/4.7.2/antlr4-runtime-4.7.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/jodah/typetools/0.6.1/typetools-0.6.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/micrometer/micrometer-core/1.10.5/micrometer-core-1.10.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.13/2.12.0/scala-collection-compat_2.13-2.12.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/micrometer/micrometer-registry-prometheus/1.10.5/micrometer-registry-prometheus-1.10.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/akka/akka-http-core_2.13/10.5.3/akka-http-core_2.13-10.5.3.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/akka/akka-actor_2.13/2.8.5/akka-actor_2.13-2.8.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/akka/akka-protobuf-v3_2.13/2.8.5/akka-protobuf-v3_2.13-2.8.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.13/0.6.1/ssl-config-core_2.13-0.6.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.14/scala-compiler-2.13.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.14/scala-reflect-2.13.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-numbers_2.13/0.14.8/circe-numbers_2.13-0.14.8.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-jawn_2.13/0.14.8/circe-jawn_2.13-0.14.8.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-java8-compat_2.13/1.0.2/scala-java8-compat_2.13-1.0.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/dynamodb/2.25.48/dynamodb-2.25.48.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.4.2/config-1.4.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/kamon/kamon-instrumentation-common_2.13/2.6.1/kamon-instrumentation-common_2.13-2.6.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/newrelic/telemetry/telemetry-core/0.15.0/telemetry-core-0.15.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/newrelic/telemetry/telemetry-http-okhttp/0.15.0/telemetry-http-okhttp-0.15.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/4.10.0/okhttp-4.10.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/oshi/oshi-core/5.7.5/oshi-core-5.7.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect-kernel_2.13/3.5.4/cats-effect-kernel_2.13-3.5.4.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-core_2.13/0.23.27/http4s-core_2.13-0.23.27.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-jawn_2.13/0.23.27/http4s-jawn_2.13-0.23.27.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-ember-core_2.13/0.23.27/http4s-ember-core_2.13-0.23.27.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-client_2.13/0.23.27/http4s-client_2.13-0.23.27.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/keypool_2.13/0.4.9/keypool_2.13-0.4.9.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/prometheus/simpleclient/0.16.0/simpleclient-0.16.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/prometheus/simpleclient_common/0.16.0/simpleclient_common-0.16.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/prometheus/simpleclient_hotspot/0.16.0/simpleclient_hotspot-0.16.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/alleycats-core_2.13/2.6.1/alleycats-core_2.13-2.6.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/paiges-core_2.13/0.4.2/paiges-core_2.13-0.4.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/paiges-cats_2.13/0.4.2/paiges-cats_2.13-0.4.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-kernel_2.13/2.12.0/cats-kernel_2.13-2.12.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect-std_2.13/3.5.4/cats-effect-std_2.13-3.5.4.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/log4cats-core_2.13/2.7.0/log4cats-core_2.13-2.7.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/aws-xml-protocol/2.26.5/aws-xml-protocol-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/protocol-core/2.26.5/protocol-core-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/arns/2.26.5/arns-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/profiles/2.26.5/profiles-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/crt-core/2.26.5/crt-core-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/http-auth/2.26.5/http-auth-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/identity-spi/2.26.5/identity-spi-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/http-auth-spi/2.26.5/http-auth-spi-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/http-auth-aws/2.26.5/http-auth-aws-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/checksums/2.26.5/checksums-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/checksums-spi/2.26.5/checksums-spi-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/retries-spi/2.26.5/retries-spi-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/sdk-core/2.26.5/sdk-core-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/auth/2.26.5/auth-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/http-client-spi/2.26.5/http-client-spi-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/regions/2.26.5/regions-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/annotations/2.26.5/annotations-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/utils/2.26.5/utils-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/aws-core/2.26.5/aws-core-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/metrics-spi/2.26.5/metrics-spi-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/json-utils/2.26.5/json-utils-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/endpoints-spi/2.26.5/endpoints-spi-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/apache-client/2.26.5/apache-client-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/netty-nio-client/2.26.5/netty-nio-client-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/literally_2.13/1.1.0/literally_2.13-1.1.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/parser/v3/swagger-parser-v2-converter/2.1.22/swagger-parser-v2-converter-2.1.22.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/parser/v3/swagger-parser-v3/2.1.22/swagger-parser-v3-2.1.22.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/commons-io/commons-io/2.15.1/commons-io-2.15.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/java-json-tools/jackson-coreutils-equivalence/1.0/jackson-coreutils-equivalence-1.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/java-json-tools/json-schema-core/1.2.14/json-schema-core-1.2.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/sun/mail/mailapi/1.6.2/mailapi-1.6.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/joda-time/joda-time/2.10.5/joda-time-2.10.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/googlecode/libphonenumber/libphonenumber/8.11.1/libphonenumber-8.11.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.2/failureaccess-1.0.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/checkerframework/checker-qual/3.41.0/checker-qual-3.41.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.23.0/error_prone_annotations-2.23.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/2.8/j2objc-annotations-2.8.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/testcontainers/testcontainers/1.15.3/testcontainers-1.15.3.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/scala-logging/scala-logging_2.13/3.9.3/scala-logging_2.13-3.9.3.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/commons/commons-compress/1.22/commons-compress-1.22.jar [exists ], /Library/Caches/Coursier/v1/https/packages.confluent.io/maven/io/confluent/kafka-schema-serializer/7.6.0/kafka-schema-serializer-7.6.0.jar [exists ], /Library/Caches/Coursier/v1/https/packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/7.6.0/kafka-schema-registry-client-7.6.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/confluent/logredactor/1.0.12/logredactor-1.0.12.jar [exists ], /Library/Caches/Coursier/v1/https/packages.confluent.io/maven/io/confluent/common-utils/7.6.0/common-utils-7.6.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/luben/zstd-jni/1.5.5-1/zstd-jni-1.5.5-1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/lz4/lz4-java/1.8.0/lz4-java-1.8.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/xerial/snappy/snappy-java/1.1.10.5/snappy-java-1.1.10.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.17.0/jackson-annotations-2.17.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.14.9/byte-buddy-1.14.9.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/propensive/mercator_2.13/0.2.1/mercator_2.13-0.2.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/fs2-blobstore/url_2.13/0.9.14/url_2.13-0.9.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/esotericsoftware/reflectasm/1.11.7/reflectasm-1.11.7.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/objenesis/objenesis/2.6/objenesis-2.6.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/micrometer/micrometer-commons/1.10.5/micrometer-commons-1.10.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/micrometer/micrometer-observation/1.10.5/micrometer-observation-1.10.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/akka/akka-parsing_2.13/10.5.3/akka-parsing_2.13-10.5.3.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.25.1/jline-3.25.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.14.0/jna-5.14.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/jawn-parser_2.13/1.5.1/jawn-parser_2.13-1.5.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/aws-json-protocol/2.25.48/aws-json-protocol-2.25.48.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okio/okio-jvm/3.0.0/okio-jvm-3.0.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.6.20/kotlin-stdlib-1.6.20.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.8.0/jna-platform-5.8.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/case-insensitive_2.13/1.4.0/case-insensitive_2.13-1.4.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-parse_2.13/1.0.0/cats-parse_2.13-1.0.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/http4s/http4s-crypto_2.13/0.2.4/http4s-crypto_2.13-0.2.4.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/vault_2.13/3.5.0/vault_2.13-3.5.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/log4s/log4s_2.13/1.10.0/log4s_2.13-1.10.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/jawn-fs2_2.13/2.4.0/jawn-fs2_2.13-2.4.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/twitter/hpack/1.0.2/hpack-1.0.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_otel/0.16.0/simpleclient_tracer_otel-0.16.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_otel_agent/0.16.0/simpleclient_tracer_otel_agent-0.16.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/simulacrum-scalafix-annotations_2.13/0.5.4/simulacrum-scalafix-annotations_2.13-0.5.4.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/aws-query-protocol/2.26.5/aws-query-protocol-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/retries/2.26.5/retries-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/eventstream/eventstream/1.0.1/eventstream-1.0.1.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/software/amazon/awssdk/third-party-jackson-core/2.26.5/third-party-jackson-core-2.26.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/commons-codec/commons-codec/1.15/commons-codec-1.15.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.108.Final/netty-codec-http-4.1.108.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.108.Final/netty-codec-http2-4.1.108.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.108.Final/netty-codec-4.1.108.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.108.Final/netty-transport-4.1.108.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.108.Final/netty-common-4.1.108.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.108.Final/netty-buffer-4.1.108.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.108.Final/netty-handler-4.1.108.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.108.Final/netty-transport-classes-epoll-4.1.108.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.108.Final/netty-resolver-4.1.108.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/swagger-core/1.6.14/swagger-core-1.6.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/swagger-parser/1.0.70/swagger-parser-1.0.70.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/swagger-compat-spec-parser/1.0.70/swagger-compat-spec-parser-1.0.70.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/core/v3/swagger-models/2.2.21/swagger-models-2.2.21.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/parser/v3/swagger-parser-core/2.1.22/swagger-parser-core-2.1.22.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/core/v3/swagger-core/2.2.21/swagger-core-2.2.21.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/parser/v3/swagger-parser-safe-url-resolver/2.1.22/swagger-parser-safe-url-resolver-2.1.22.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.17.0/jackson-dataformat-yaml-2.17.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/java-json-tools/jackson-coreutils/2.0/jackson-coreutils-2.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/java-json-tools/uri-template/0.10/uri-template-0.10.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/mozilla/rhino/1.7.7.2/rhino-1.7.7.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/rnorth/duct-tape/duct-tape/1.0.8/duct-tape-1.0.8.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/rnorth/visible-assertions/visible-assertions/2.1.2/visible-assertions-2.1.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/docker-java/docker-java-api/3.2.8/docker-java-api-3.2.8.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/docker-java/docker-java-transport-zerodep/3.2.8/docker-java-transport-zerodep-3.2.8.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-csv/2.14.2/jackson-dataformat-csv-2.14.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/core/v3/swagger-annotations/2.2.21/swagger-annotations-2.2.21.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/re2j/re2j/1.6/re2j-1.6.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/confluent/logredactor-metrics/1.0.12/logredactor-metrics-1.0.12.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eclipsesource/minimal-json/minimal-json/0.9.5/minimal-json-0.9.5.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.5.31/kotlin-stdlib-jdk8-1.5.31.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.20/kotlin-stdlib-common-1.6.20.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_common/0.16.0/simpleclient_tracer_common-0.16.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.108.Final/netty-transport-native-unix-common-4.1.108.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.14.0/commons-lang3-3.14.0.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/swagger-models/1.6.14/swagger-models-1.6.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/swagger-parser-safe-url-resolver/1.0.70/swagger-parser-safe-url-resolver-1.0.70.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/java-json-tools/json-patch/1.13/json-patch-1.13.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.16.2/jackson-datatype-jsr310-2.16.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/java-json-tools/msg-simple/1.2/msg-simple-1.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/docker-java/docker-java-transport/3.2.8/docker-java-transport-3.2.8.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.5.31/kotlin-stdlib-jdk7-1.5.31.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/swagger/swagger-annotations/1.6.14/swagger-annotations-1.6.14.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar [exists ], /Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/java-json-tools/btf/1.3/btf-1.3.jar [exists ]
Options:
-deprecation:false -Xfatal-warnings -encoding UTF-8 -feature -language:higherKinds -unchecked -Wunused:imports -Yrangepos -Xplugin-require:semanticdb

action parameters:
uri: jar:file:///Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.14/scala-library-2.13.14-sources.jar!/scala/AnyRef.scala
text:

/*
 * Scala (https://www.scala-lang.org)
 *
 * Copyright EPFL and Lightbend, Inc.
 *
 * Licensed under Apache License 2.0
 * (http://www.apache.org/licenses/LICENSE-2.0).
 *
 * See the NOTICE file distributed with this work for
 * additional information regarding copyright ownership.
 */

package scala

/** Class `AnyRef` is the root class of all ''reference types''.
 *  All types except the value types descend from this class.
 *  @template
 */
trait AnyRef extends Any {

  /** The equality method for reference types.  Default implementation delegates to `eq`.
   *
   *  See also `equals` in [[scala.Any]].
   *
   *  @param  that    the object to compare against this object for equality.
   *  @return         `true` if the receiver object is equivalent to the argument; `false` otherwise.
   */
  def equals(that: Any): Boolean = this eq that

  /** The hashCode method for reference types.  See hashCode in [[scala.Any]].
   *
   *  @return   the hash code value for this object.
   */
  def hashCode: Int = sys.error("hashCode")

  /** Creates a String representation of this object.  The default
   *  representation is platform dependent.  On the java platform it
   *  is the concatenation of the class name, "@", and the object's
   *  hashcode in hexadecimal.
   *
   *  @return     a String representation of the object.
   */
  def toString: String = sys.error("toString")

  /** Executes the code in `body` with an exclusive lock on `this`.
   *
   *  @param    body    the code to execute
   *  @return           the result of `body`
   */
  def synchronized[T](body: => T): T = sys.error("synchronized")

  /** Tests whether the argument (`that`) is a reference to the receiver object (`this`).
   *
   *  The `eq` method implements an [[https://en.wikipedia.org/wiki/Equivalence_relation equivalence relation]] on
   *  non-null instances of `AnyRef`, and has three additional properties:
   *
   *   - It is consistent: for any non-null instances `x` and `y` of type `AnyRef`, multiple invocations of
   *     `x.eq(y)` consistently returns `true` or consistently returns `false`.
   *   - For any non-null instance `x` of type `AnyRef`, `x.eq(null)` and `null.eq(x)` returns `false`.
   *   - `null.eq(null)` returns `true`.
   *
   *  When overriding the `equals` or `hashCode` methods, it is important to ensure that their behavior is
   *  consistent with reference equality.  Therefore, if two objects are references to each other (`o1 eq o2`), they
   *  should be equal to each other (`o1 == o2`) and they should hash to the same value (`o1.hashCode == o2.hashCode`).
   *
   *  @param  that    the object to compare against this object for reference equality.
   *  @return         `true` if the argument is a reference to the receiver object; `false` otherwise.
   */
  final def eq(that: AnyRef): Boolean = sys.error("eq")

  /** Equivalent to `!(this eq that)`.
   *
   *  @param  that    the object to compare against this object for reference equality.
   *  @return         `true` if the argument is not a reference to the receiver object; `false` otherwise.
   */
  final def ne(that: AnyRef): Boolean = !(this eq that)

  /** The expression `x == that` is equivalent to `if (x eq null) that eq null else x.equals(that)`.
   *
   *  @param    that  the object to compare against this object for equality.
   *  @return         `true` if the receiver object is equivalent to the argument; `false` otherwise.
   */
  final def ==(that: Any): Boolean =
    if (this eq null) that.asInstanceOf[AnyRef] eq null
    else this equals that

  /** Create a copy of the receiver object.
   *
   *  The default implementation of the `clone` method is platform dependent.
   *
   *  @note   not specified by SLS as a member of AnyRef
   *  @return a copy of the receiver object.
   */
  protected def clone(): AnyRef

  /** Called by the garbage collector on the receiver object when there
   *  are no more references to the object.
   *
   *  The details of when and if the `finalize` method is invoked, as
   *  well as the interaction between `finalize` and non-local returns
   *  and exceptions, are all platform dependent.
   *
   *  @note   not specified by SLS as a member of AnyRef
   */
  protected def finalize(): Unit

  /** Wakes up a single thread that is waiting on the receiver object's monitor.
   *
   *  @note   not specified by SLS as a member of AnyRef
   */
  final def notify(): Unit

  /** Wakes up all threads that are waiting on the receiver object's monitor.
   *
   *  @note   not specified by SLS as a member of AnyRef
   */
  final def notifyAll(): Unit

  /** See [[https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--]].
   *
   *  @note   not specified by SLS as a member of AnyRef
   */
  final def wait (): Unit

  /** See [[https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-]]
   *
   * @param timeout the maximum time to wait in milliseconds.
   * @param nanos   additional time, in nanoseconds range 0-999999.
   * @note not specified by SLS as a member of AnyRef
   */
  final def wait (timeout: Long, nanos: Int): Unit

  /** See [[https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-]].
   *
   * @param timeout the maximum time to wait in milliseconds.
   * @note not specified by SLS as a member of AnyRef
   */
  final def wait (timeout: Long): Unit
}

Error stacktrace:

scala.sys.package$.error(package.scala:27)
	scala.meta.internal.semanticdb.scalac.TypeOps$XtensionGTypeSType.loop$1(TypeOps.scala:74)
	scala.meta.internal.semanticdb.scalac.TypeOps$XtensionGTypeSType.toSemanticTpe(TypeOps.scala:76)
	scala.meta.internal.semanticdb.scalac.TypeOps$XtensionGTypeSType.loop$2(TypeOps.scala:104)
	scala.meta.internal.semanticdb.scalac.TypeOps$XtensionGTypeSType.toSemanticSig(TypeOps.scala:127)
	scala.meta.internal.semanticdb.scalac.SymbolInformationOps$XtensionGSymbolMSymbolInformation.sig(SymbolInformationOps.scala:116)
	scala.meta.internal.semanticdb.scalac.SymbolInformationOps$XtensionGSymbolMSymbolInformation.toSymbolInformation(SymbolInformationOps.scala:196)
	scala.meta.internal.semanticdb.scalac.TextDocumentOps$XtensionCompilationUnitDocument$traverser$3$.saveSymbol$1(TextDocumentOps.scala:176)
	scala.meta.internal.semanticdb.scalac.TextDocumentOps$XtensionCompilationUnitDocument$traverser$3$.trySymbolDefinition(TextDocumentOps.scala:178)
	scala.meta.internal.semanticdb.scalac.TextDocumentOps$XtensionCompilationUnitDocument$traverser$3$.tryFindMtree(TextDocumentOps.scala:273)
	scala.meta.internal.semanticdb.scalac.TextDocumentOps$XtensionCompilationUnitDocument$traverser$3$.traverse(TextDocumentOps.scala:554)
	scala.meta.internal.semanticdb.scalac.TextDocumentOps$XtensionCompilationUnitDocument$traverser$3$.traverse(TextDocumentOps.scala:165)
	scala.reflect.api.Trees$Traverser.$anonfun$traverseStats$2(Trees.scala:2523)
	scala.reflect.api.Trees$Traverser.atOwner(Trees.scala:2532)
	scala.reflect.api.Trees$Traverser.$anonfun$traverseStats$1(Trees.scala:2523)
	scala.reflect.api.Trees$Traverser.traverseStats(Trees.scala:2522)
	scala.reflect.internal.Trees$PackageDef.traverse(Trees.scala:349)
	scala.reflect.internal.Trees.itraverse(Trees.scala:1613)
	scala.reflect.internal.Trees.itraverse$(Trees.scala:1612)
	scala.reflect.internal.SymbolTable.itraverse(SymbolTable.scala:28)
	scala.reflect.internal.SymbolTable.itraverse(SymbolTable.scala:28)
	scala.reflect.api.Trees$Traverser.traverse(Trees.scala:2500)
	scala.meta.internal.semanticdb.scalac.TextDocumentOps$XtensionCompilationUnitDocument$traverser$3$.traverse(TextDocumentOps.scala:625)
	scala.meta.internal.semanticdb.scalac.TextDocumentOps$XtensionCompilationUnitDocument.toTextDocument(TextDocumentOps.scala:628)
	scala.meta.internal.pc.SemanticdbTextDocumentProvider.textDocument(SemanticdbTextDocumentProvider.scala:54)
	scala.meta.internal.pc.ScalaPresentationCompiler.$anonfun$semanticdbTextDocument$1(ScalaPresentationCompiler.scala:469)

Short summary:

java.lang.RuntimeException: unsupported type Any {
def $init$(): Unit
def equals(that: Any): Boolean
def hashCode: Int
def toString: String
def synchronized[T](body: => T): T
final def eq(that: AnyRef): Boolean
final def ne(that: AnyRef): Boolean
final def ==(that: Any): Boolean
protected def clone(): AnyRef
protected def finalize(): Unit
final def notify(): Unit
final def notifyAll(): Unit
final def wait(): Unit
final def wait(timeout: Long, nanos: Int): Unit
final def wait(timeout: Long): Unit
}: ClassInfoType(List(TypeRef(ThisType(scala), scala.Any, List())), Scope(TermName("$init$"), TermName("equals"), TermName("hashCode"), TermName("toString"), TermName("synchronized"), TermName("eq"), TermName("ne"), TermName("$eq$eq"), TermName("clone"), TermName("finalize"), TermName("notify"), TermName("notifyAll"), TermName("wait"), TermName("wait"), TermName("wait")), TypeName("AnyRef"))

Expected behavior

No response

Operating system

macOS

Editor/Extension

Nvim (nvim-metals)

Version of Metals

v1.3.5

Extra context or search terms

presentation compiler

@masonedmison
Copy link
Contributor Author

I'm not really sure how to further troubleshoot this (or if this is even an issue with Metals or the compiler itself?). Happy to dig deeper but would need a bit of help figuring out where to start.

@tgodzik
Copy link
Contributor

tgodzik commented Oct 7, 2024

Thanks for reporting! Does it only happen in that specific file? Or does it break other files as well?

@masonedmison
Copy link
Contributor Author

@tgodzik I've noticed with at least three different files, two of which are source files in the project.

@tgodzik tgodzik added the bug Something that is making a piece of functionality unusable label Oct 19, 2024
@tgodzik tgodzik added the semanticdb Related to semanticdb usage in Metals label Oct 21, 2024
@masonedmison
Copy link
Contributor Author

masonedmison commented Nov 4, 2024

@tgodzik

Update: Something strange I've noticed is that different errors are thrown when Metals crashes. For instance, today Metals crashed, with a SEVERE: A severe compiler error occurred, full details of the error can be found .... in the logs, and the short summary is:

java.lang.NullPointerException: Cannot invoke "scala.reflect.internal.Symbols$Symbol.isImplicit()" because the return value of "scala.reflect.internal.Trees$Tree.symbol()" is null

and the stack trace is:

scala.meta.internal.pc.PcCollector.isCorrectPos(PcCollector.scala:93)
	scala.meta.internal.pc.PcCollector.isCorrectPos$(PcCollector.scala:92)
	scala.meta.internal.pc.WithSymbolSearchCollector.isCorrectPos(PcCollector.scala:345)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:126)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$7(PcCollector.scala:167)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:167)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:168)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:168)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:168)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:168)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:168)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:168)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:168)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$15(PcCollector.scala:251)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:251)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$24(PcCollector.scala:311)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:311)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$15(PcCollector.scala:251)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:251)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$1(PcCollector.scala:104)
	scala.meta.internal.pc.PcCollector.$anonfun$traverseSought$15(PcCollector.scala:251)
	scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	scala.collection.immutable.List.foldLeft(List.scala:79)
	scala.meta.internal.pc.PcCollector.traverseWithParent$1(PcCollector.scala:251)
	scala.meta.internal.pc.PcCollector.traverseSought(PcCollector.scala:314)
	scala.meta.internal.pc.PcCollector.traverseSought$(PcCollector.scala:95)
	scala.meta.internal.pc.WithSymbolSearchCollector.traverseSought(PcCollector.scala:345)
	scala.meta.internal.pc.PcCollector.resultWithSought(PcCollector.scala:82)
	scala.meta.internal.pc.PcCollector.resultWithSought$(PcCollector.scala:17)
	scala.meta.internal.pc.WithSymbolSearchCollector.resultWithSought(PcCollector.scala:345)
	scala.meta.internal.pc.WithSymbolSearchCollector.$anonfun$result$1(PcCollector.scala:352)
	scala.Option.map(Option.scala:242)
	scala.meta.internal.pc.WithSymbolSearchCollector.result(PcCollector.scala:352)
	scala.meta.internal.pc.PcReferencesProvider.references(PcReferencesProvider.scala:39)
	scala.meta.internal.pc.PcReferencesProvider.references$(PcReferencesProvider.scala:38)
	scala.meta.internal.pc.LocalPcReferencesProvider.references(PcReferencesProvider.scala:52)
	scala.meta.internal.pc.ScalaPresentationCompiler.$anonfun$references$1(ScalaPresentationCompiler.scala:445)

The file is different, too.

According to the summaries of this error, it would seem that the errors are completely different but I do find it a strange coincidence that the same code base would trigger both of these errors.

If you do think that this is a separate potential issue, let me know and I can create a separate issue from this one.

@tgodzik
Copy link
Contributor

tgodzik commented Nov 5, 2024

I think the other error was already fixed in #6825

@masonedmison
Copy link
Contributor Author

masonedmison commented Nov 5, 2024

@tgodzik Ah, I see. I'm sorry I missed that.

In terms of the original issue reported, I've started to poke around a little bit, and, in short, it looks like the failure is occurring when we "get" the semanticDB text document that, somewhere?, includes a Type that is a g.TypeBounds(glo, ghi) where glo, or the lower type bound, is Any. The error is being thrown where the SemanticDB type is computed from the scala.reflect Type. It seems absurd that a lower bound would be Any but it's not at all clear to me where things are going wrong.

Any tips in how to further troubleshoot this? Next, I was going to try to add some debug information to see if I can at least track down the specific file where this error is being raised.

@tgodzik
Copy link
Contributor

tgodzik commented Nov 5, 2024

There are possibly couple of ways to go about this:

  • fix the issue in semanticdb scalameta/scalameta to handle that type
  • figure out if the compiler is compiling something wrong or maybe something doesn't work with the presentation compiler
  • catch the error and just return None for semanticdb as for normal files it's only a fallback. For dependency sources we could use the presentation compiler directly from the ReferenceProvider, which should be more reliable

Last option would be lowest effort probably. First one a bit more complicated since we would need to delve into semanticdb, which is not the easiest code. Second one I don't even know how to go about.

@masonedmison
Copy link
Contributor Author

masonedmison commented Nov 11, 2024

@tgodzik I see. Regarding the last option, this is the call site in which the exception is being thrown. The exception being thrown is happening here.

If we were to take this approach, how fine-grained would we want to be in the errors we "catch"? The error being raised is a RuntimeException but we could pattern match on the text "s"unsupported type $gother: ${g.showRaw(gother)}" which, admitingly, feels quite hacky.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something that is making a piece of functionality unusable semanticdb Related to semanticdb usage in Metals
Projects
None yet
Development

No branches or pull requests

2 participants