From 967d4a08b3a8e78849db357d3d8840e73208ac35 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 5 Apr 2024 01:29:30 -0400 Subject: [PATCH] More robust against the lack of companion? --- main-actions/src/main/scala/sbt/Tests.scala | 23 +++++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/main-actions/src/main/scala/sbt/Tests.scala b/main-actions/src/main/scala/sbt/Tests.scala index 797e19f9f..2b1eefbf2 100644 --- a/main-actions/src/main/scala/sbt/Tests.scala +++ b/main-actions/src/main/scala/sbt/Tests.scala @@ -30,6 +30,7 @@ import testing.{ } import scala.annotation.tailrec +import scala.util.control.NonFatal import sbt.internal.util.ManagedLogger import sbt.util.Logger import sbt.protocol.testing.TestResult @@ -534,15 +535,19 @@ object Tests { case analysis: Analysis => val acs: Seq[xsbti.api.AnalyzedClass] = analysis.apis.internal.values.toVector acs.flatMap { ac => - val companions = ac.api - val all = - Seq(companions.classApi: Definition, companions.objectApi: Definition) ++ - (companions.classApi.structure.declared.toSeq: Seq[Definition]) ++ - (companions.classApi.structure.inherited.toSeq: Seq[Definition]) ++ - (companions.objectApi.structure.declared.toSeq: Seq[Definition]) ++ - (companions.objectApi.structure.inherited.toSeq: Seq[Definition]) - - all + try + val companions = ac.api + val all = + Seq(companions.classApi: Definition, companions.objectApi: Definition) ++ + (companions.classApi.structure.declared.toSeq: Seq[Definition]) ++ + (companions.classApi.structure.inherited.toSeq: Seq[Definition]) ++ + (companions.objectApi.structure.declared.toSeq: Seq[Definition]) ++ + (companions.objectApi.structure.inherited.toSeq: Seq[Definition]) + all + catch + case NonFatal(e) => + if e.getMessage.startsWith("No companions") then Nil + else throw e }.toSeq } def discover(