@@ -27,22 +27,23 @@ final case class TestFlags(
27
27
private def withoutLanguageFeaturesOptions = options.filterNot(_.startsWith(languageFeatureFlag))
28
28
29
29
// 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 ) =
32
32
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))
36
38
37
- def withoutLanguageFeature (feature : String ) = {
39
+ def withoutLanguageFeature (feature : String ) =
38
40
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)
40
43
val newOptions =
41
- if ( filteredFeatures.isEmpty) rest
44
+ if filteredFeatures.isEmpty then rest
42
45
else rest ++ Array (languageFeatureFlag + filteredFeatures.mkString(" ," ))
43
-
44
46
copy(options = newOptions)
45
- }
46
47
47
48
/** Subset of the flags that should be passed to javac. */
48
49
def javacFlags : Array [String ] = {
0 commit comments