Skip to content

Commit cd7df9c

Browse files
Merge pull request #10216 from som-snytt/issue/test-language
Improve handling of language flags by Vulpix
2 parents 6a5565d + 8096394 commit cd7df9c

File tree

3 files changed

+9
-15
lines changed

3 files changed

+9
-15
lines changed

Diff for: compiler/test/dotty/tools/vulpix/TestFlags.scala

+6-12
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,17 @@ final case class TestFlags(
2626
private val languageFeatureFlag = "-language:"
2727
private def withoutLanguageFeaturesOptions = options.filterNot(_.startsWith(languageFeatureFlag))
2828

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) = {
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-
}
29+
def andLanguageFeature(feature: String) =
30+
copy(options = options ++ Array(s"$languageFeatureFlag$feature"))
3631

37-
def withoutLanguageFeature(feature: String) = {
32+
def withoutLanguageFeature(feature: String) =
3833
val (languageFeatures, rest) = options.partition(_.startsWith(languageFeatureFlag))
39-
val filteredFeatures = languageFeatures.filter(_ == feature)
34+
val existingFeatures = languageFeatures.flatMap(_.stripPrefix(languageFeatureFlag).split(","))
35+
val filteredFeatures = existingFeatures.filterNot(_ == feature)
4036
val newOptions =
41-
if (filteredFeatures.isEmpty) rest
37+
if filteredFeatures.isEmpty then rest
4238
else rest ++ Array(languageFeatureFlag + filteredFeatures.mkString(","))
43-
4439
copy(options = newOptions)
45-
}
4640

4741
/** Subset of the flags that should be passed to javac. */
4842
def javacFlags: Array[String] = {

Diff for: tests/neg-custom-args/i5498-postfixOps.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ def test() = {
44
1 second // error: usage of postfix operator
55

66
Seq(1, 2).filter(List(1,2) contains) // error: usage of postfix operator
7-
}
7+
}

Diff for: tests/pos-custom-args/i5498-postfixOps.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ import scala.language.postfixOps
55
def test() = {
66
1 second
77

8-
Seq(1, 2) filter (List(1,2) contains)
9-
}
8+
Seq(1, 2) filter (List(1,2) contains) toList
9+
}

0 commit comments

Comments
 (0)