@@ -27,22 +27,23 @@ final case class TestFlags(
2727 private def withoutLanguageFeaturesOptions = options.filterNot(_.startsWith(languageFeatureFlag))
2828
2929 // TODO simplify to add `-language:feature` to `options` once
30- // https://github.com/lampepfl/dotty-feature-requests /issues/107 is implemented
31- def andLanguageFeature (feature : String ) = {
30+ // https://github.com/lampepfl/dotty/issues/9787 is implemented
31+ def andLanguageFeature (feature : String ) =
3232 val (languageFeatures, rest) = options.partition(_.startsWith(languageFeatureFlag))
33- val existingFeatures = if (languageFeatures.isEmpty) languageFeatures.mkString(" ," ) + " ," else " "
34- copy(options = rest ++ Array (languageFeatureFlag + existingFeatures + feature))
35- }
33+ val existingFeatures = languageFeatures.flatMap(_.stripPrefix(languageFeatureFlag).split(" ," ))
34+ val featurePrefix =
35+ if existingFeatures.isEmpty then " "
36+ else existingFeatures.mkString(" ," ) + " ,"
37+ copy(options = rest ++ Array (languageFeatureFlag + featurePrefix + feature))
3638
37- def withoutLanguageFeature (feature : String ) = {
39+ def withoutLanguageFeature (feature : String ) =
3840 val (languageFeatures, rest) = options.partition(_.startsWith(languageFeatureFlag))
39- val filteredFeatures = languageFeatures.filter(_ == feature)
41+ val existingFeatures = languageFeatures.flatMap(_.stripPrefix(languageFeatureFlag).split(" ," ))
42+ val filteredFeatures = existingFeatures.filterNot(_ == feature)
4043 val newOptions =
41- if ( filteredFeatures.isEmpty) rest
44+ if filteredFeatures.isEmpty then rest
4245 else rest ++ Array (languageFeatureFlag + filteredFeatures.mkString(" ," ))
43-
4446 copy(options = newOptions)
45- }
4647
4748 /** Subset of the flags that should be passed to javac. */
4849 def javacFlags : Array [String ] = {
0 commit comments