@@ -31,9 +31,11 @@ abstract class SignatureTest(
3131 .map { file => Source .fromFile(s " ${BuildInfo .test_testcasesSourceRoot}/tests/ $file.scala " ) }
3232 .flatMap(signaturesFromSources(_, signatureKinds))
3333 .toList
34+
3435 val expectedFromSources : Map [String , List [String ]] = allSignaturesFromSources
3536 .collect { case e : Expected => e }
3637 .groupMap(_.name)(_.signature)
38+
3739 val unexpectedFromSources : Set [String ] = allSignaturesFromSources.collect { case Unexpected (name) => name }.toSet
3840
3941 val actualSignatures : Map [String , Seq [String ]] =
@@ -84,7 +86,7 @@ abstract class SignatureTest(
8486
8587 private def findName (signature : String , kinds : Seq [String ]): Option [String ] =
8688 for
87- kindMatch <- kinds.flatMap(k => s " \\ b $k\\ b " .r.findFirstMatchIn(signature)).headOption
89+ kindMatch <- kinds.flatMap(k => s " \\ b $k\\ b " .r.findFirstMatchIn(signature)).minByOption(_.start)
8890 kind <- Option (kindMatch.group(0 )) // to filter out nulls
8991 afterKind <- Option (kindMatch.after(0 )) // to filter out nulls
9092 name <- if kind.contains(" extension" ) then Some (signature) // The name of an extension will always be the signature itself
@@ -98,7 +100,8 @@ abstract class SignatureTest(
98100 .toSeq
99101 .flatMap {
100102 case unexpectedRegex(signature) => findName(signature, kinds).map(Unexpected (_))
101- case expectedRegex(signature) => findName(signature, kinds).map(Expected (_, signature))
103+ case expectedRegex(signature) =>
104+ findName(signature, kinds).map(Expected (_, signature))
102105 case signature =>
103106 findName(signature, kinds).map(
104107 Expected (_, commentRegex.replaceAllIn(signature, " " )
0 commit comments