diff --git a/CODINGSTYLE.md b/CODINGSTYLE.md index 47cb6a448a..eb79ec4986 100644 --- a/CODINGSTYLE.md +++ b/CODINGSTYLE.md @@ -227,7 +227,7 @@ value :: list ``` When calling a method declared with an empty pair of parentheses, always use `()`. -Not doing so causes (fatal) warnings when calling Scala-declared methods in Scala 2.13.3+. +Not doing so causes (fatal) warnings when calling Scala-declared methods in Scala 2.13.x. For consistency, we also apply this rule to all Java-defined methods, including `toString()`. ### Method definition diff --git a/Jenkinsfile b/Jenkinsfile index aaa2897fbc..63e464571d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -559,9 +559,6 @@ def otherScalaVersions = [ "2.12.16", "2.12.17", "2.12.18", - "2.13.0", - "2.13.1", - "2.13.2", "2.13.3", "2.13.4", "2.13.5", diff --git a/compiler/src/main/scala/org/scalajs/nscplugin/GenJSCode.scala b/compiler/src/main/scala/org/scalajs/nscplugin/GenJSCode.scala index acf2d096ad..7c4548e67f 100644 --- a/compiler/src/main/scala/org/scalajs/nscplugin/GenJSCode.scala +++ b/compiler/src/main/scala/org/scalajs/nscplugin/GenJSCode.scala @@ -3875,7 +3875,7 @@ abstract class GenJSCode[G <: Global with Singleton](val global: G) * true `int`s can reach the back-end, as asserted by the String-switch * transformation in `cleanup`. Therefore, we do not adapt, preserving * the `string`s and `null`s that come out of the pattern matching in - * Scala 2.13.2+. + * Scala 2.13.x. */ val genSelector = genExpr(selector) diff --git a/compiler/src/test/scala/org/scalajs/nscplugin/test/DiverseErrorsTest.scala b/compiler/src/test/scala/org/scalajs/nscplugin/test/DiverseErrorsTest.scala index da1360b581..9ed869cbcc 100644 --- a/compiler/src/test/scala/org/scalajs/nscplugin/test/DiverseErrorsTest.scala +++ b/compiler/src/test/scala/org/scalajs/nscplugin/test/DiverseErrorsTest.scala @@ -26,13 +26,8 @@ class DiverseErrorsTest extends DirectTest with TestHelpers { private def version = scala.util.Properties.versionNumberString - private val allowsSingletonClassOf = ( - !version.startsWith("2.12.") && - version != "2.13.0" && - version != "2.13.1" && - version != "2.13.2" && - version != "2.13.3" - ) + private val allowsSingletonClassOf = + !version.startsWith("2.12.") && version != "2.13.3" @Test def noIsInstanceOnJS(): Unit = { diff --git a/compiler/src/test/scala/org/scalajs/nscplugin/test/JSInteropTest.scala b/compiler/src/test/scala/org/scalajs/nscplugin/test/JSInteropTest.scala index 907bf0c83e..8d79f251a3 100644 --- a/compiler/src/test/scala/org/scalajs/nscplugin/test/JSInteropTest.scala +++ b/compiler/src/test/scala/org/scalajs/nscplugin/test/JSInteropTest.scala @@ -4423,9 +4423,7 @@ class JSInteropTest extends DirectTest with TestHelpers { version == "2.12.7" || version == "2.12.8" || version == "2.12.9" || - version == "2.12.10" || - version == "2.13.0" || - version == "2.13.1" + version == "2.12.10" } if (hasNoSpace) "" else " " diff --git a/compiler/src/test/scala/org/scalajs/nscplugin/test/util/VersionDependentUtils.scala b/compiler/src/test/scala/org/scalajs/nscplugin/test/util/VersionDependentUtils.scala index 5b54f73a1b..7e52a1edf8 100644 --- a/compiler/src/test/scala/org/scalajs/nscplugin/test/util/VersionDependentUtils.scala +++ b/compiler/src/test/scala/org/scalajs/nscplugin/test/util/VersionDependentUtils.scala @@ -15,23 +15,12 @@ package org.scalajs.nscplugin.test.util object VersionDependentUtils { val scalaVersion = scala.util.Properties.versionNumberString - /** Does the current Scala version support the `@nowarn` annotation? */ - val scalaSupportsNoWarn = { - !scalaVersion.startsWith("2.12.") && - scalaVersion != "2.13.0" && - scalaVersion != "2.13.1" - } + private val isScala212 = scalaVersion.startsWith("2.12.") - private val usesColonInMethodSig = { - /* Yes, this is the same test as in scalaSupportsNoWarn, but that's - * completely coincidental, so we have a copy. - */ - !scalaVersion.startsWith("2.12.") && - scalaVersion != "2.13.0" && - scalaVersion != "2.13.1" - } + /** Does the current Scala version support the `@nowarn` annotation? */ + val scalaSupportsNoWarn = !isScala212 def methodSig(params: String, resultType: String): String = - if (usesColonInMethodSig) params + ": " + resultType + if (!isScala212) params + ": " + resultType else params + resultType } diff --git a/project/Build.scala b/project/Build.scala index 5c1c69e528..9eb18bbd1e 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -484,12 +484,7 @@ object Build { def addWconfSettingIf2_13(conf: String): Def.Setting[_] = { scalacOptions ++= { - /* We exclude 2.13.0 and 2.13.1 because they did not support -Wconf yet. - * Fortunately, our use cases for -Wconf are only triggered with later - * versions. - */ - val v = scalaVersion.value - if (v.startsWith("2.13.") && v != "2.13.0" && v != "2.13.1") + if (scalaVersion.value.startsWith("2.13.")) List("-Wconf:" + conf) else Nil @@ -739,12 +734,7 @@ object Build { scalacOptions in (Compile, doc) := { val prev = (scalacOptions in (Compile, doc)).value - val scalaV = scalaVersion.value - def scaladocFullySupportsJDKgreaterThan8 = { - !scalaV.startsWith("2.12.") && - scalaV != "2.13.0" && scalaV != "2.13.1" && scalaV != "2.13.2" - } - if (javaVersion.value > 8 && !scaladocFullySupportsJDKgreaterThan8) + if (javaVersion.value > 8 && scalaVersion.value.startsWith("2.12.")) prev.filter(_ != "-Xfatal-warnings") else prev @@ -966,9 +956,6 @@ object Build { "2.12.19", ), cross213ScalaVersions := Seq( - "2.13.0", - "2.13.1", - "2.13.2", "2.13.3", "2.13.4", "2.13.5", diff --git a/scala-test-suite/src/test/resources/2.13.0/BlacklistedTests.txt b/scala-test-suite/src/test/resources/2.13.0/BlacklistedTests.txt deleted file mode 100644 index 67798232ba..0000000000 --- a/scala-test-suite/src/test/resources/2.13.0/BlacklistedTests.txt +++ /dev/null @@ -1,180 +0,0 @@ -## Do not compile -scala/ExtractorTest.scala -scala/OptionTest.scala -scala/SerializationStabilityTest.scala -scala/StringTest.scala -scala/collection/FactoriesTest.scala -scala/collection/LazyZipOpsTest.scala -scala/collection/immutable/IndexedSeqTest.scala -scala/collection/immutable/RangeTest.scala -scala/lang/annotations/BytecodeTest.scala -scala/lang/annotations/RunTest.scala -scala/lang/traits/BytecodeTest.scala -scala/lang/traits/RunTest.scala -scala/lang/primitives/NaNTest.scala -scala/reflect/ClassOfTest.scala -scala/reflect/FieldAccessTest.scala -scala/reflect/QTest.scala -scala/reflect/io/ZipArchiveTest.scala -scala/reflect/internal/Infer.scala -scala/reflect/internal/LongNamesTest.scala -scala/reflect/internal/MirrorsTest.scala -scala/reflect/internal/NamesTest.scala -scala/reflect/internal/PositionsTest.scala -scala/reflect/internal/PrintersTest.scala -scala/reflect/internal/ScopeTest.scala -scala/reflect/internal/TreeGenTest.scala -scala/reflect/internal/TypesTest.scala -scala/reflect/internal/util/AbstractFileClassLoaderTest.scala -scala/reflect/internal/util/FileUtilsTest.scala -scala/reflect/internal/util/SourceFileTest.scala -scala/reflect/internal/util/StringOpsTest.scala -scala/reflect/internal/util/WeakHashSetTest.scala -scala/reflect/io/AbstractFileTest.scala -scala/tools/cmd/CommandLineParserTest.scala -scala/tools/nsc/DeterminismTest.scala -scala/tools/nsc/GlobalCustomizeClassloaderTest.scala -scala/tools/nsc/ScriptRunnerTest.scala -scala/tools/nsc/backend/jvm/BTypesTest.scala -scala/tools/nsc/backend/jvm/BytecodeTest.scala -scala/tools/nsc/backend/jvm/DefaultMethodTest.scala -scala/tools/nsc/backend/jvm/DirectCompileTest.scala -scala/tools/nsc/backend/jvm/GenericSignaturesTest.scala -scala/tools/nsc/backend/jvm/IndyLambdaTest.scala -scala/tools/nsc/backend/jvm/IndySammyTest.scala -scala/tools/nsc/backend/jvm/InnerClassAttributeTest.scala -scala/tools/nsc/backend/jvm/NestedClassesCollectorTest.scala -scala/tools/nsc/backend/jvm/OptimizedBytecodeTest.scala -scala/tools/nsc/backend/jvm/PerRunInitTest.scala -scala/tools/nsc/backend/jvm/StringConcatTest.scala -scala/tools/nsc/backend/jvm/analysis/NullnessAnalyzerTest.scala -scala/tools/nsc/backend/jvm/analysis/ProdConsAnalyzerTest.scala -scala/tools/nsc/backend/jvm/analysis/TypeFlowAnalyzerTest.scala -scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala -scala/tools/nsc/backend/jvm/opt/BTypesFromClassfileTest.scala -scala/tools/nsc/backend/jvm/opt/BoxUnboxTest.scala -scala/tools/nsc/backend/jvm/opt/CallGraphTest.scala -scala/tools/nsc/backend/jvm/opt/ClosureOptimizerTest.scala -scala/tools/nsc/backend/jvm/opt/CompactLocalVariablesTest.scala -scala/tools/nsc/backend/jvm/opt/EmptyExceptionHandlersTest.scala -scala/tools/nsc/backend/jvm/opt/EmptyLabelsAndLineNumbersTest.scala -scala/tools/nsc/backend/jvm/opt/InlineInfoTest.scala -scala/tools/nsc/backend/jvm/opt/InlinerIllegalAccessTest.scala -scala/tools/nsc/backend/jvm/opt/InlinerSeparateCompilationTest.scala -scala/tools/nsc/backend/jvm/opt/InlinerTest.scala -scala/tools/nsc/backend/jvm/opt/InlineSourceMatcherTest.scala -scala/tools/nsc/backend/jvm/opt/InlineWarningTest.scala -scala/tools/nsc/backend/jvm/opt/MethodLevelOptsTest.scala -scala/tools/nsc/backend/jvm/opt/ScalaInlineInfoTest.scala -scala/tools/nsc/backend/jvm/opt/SimplifyJumpsTest.scala -scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala -scala/tools/nsc/backend/jvm/opt/UnusedLocalVariablesTest.scala -scala/tools/nsc/classpath/AggregateClassPathTest.scala -scala/tools/nsc/classpath/JrtClassPathTest.scala -scala/tools/nsc/classpath/MultiReleaseJarTest.scala -scala/tools/nsc/classpath/PathResolverBaseTest.scala -scala/tools/nsc/classpath/VirtualDirectoryClassPathTest.scala -scala/tools/nsc/classpath/ZipAndJarFileLookupFactoryTest.scala -scala/tools/nsc/doc/html/HtmlDocletTest.scala -scala/tools/nsc/doc/html/StringLiteralTest.scala -scala/tools/nsc/interpreter/CompletionTest.scala -scala/tools/nsc/interpreter/ScriptedTest.scala -scala/tools/nsc/interpreter/TabulatorTest.scala -scala/tools/nsc/parser/ParserTest.scala -scala/tools/nsc/reporters/ConsoleReporterTest.scala -scala/tools/nsc/reporters/PositionFilterTest.scala -scala/tools/nsc/settings/ScalaVersionTest.scala -scala/tools/nsc/settings/SettingsTest.scala -scala/tools/nsc/symtab/CannotHaveAttrsTest.scala -scala/tools/nsc/symtab/FlagsTest.scala -scala/tools/nsc/symtab/FreshNameExtractorTest.scala -scala/tools/nsc/symtab/StdNamesTest.scala -scala/tools/nsc/symtab/SymbolTableForUnitTesting.scala -scala/tools/nsc/symtab/SymbolTableTest.scala -scala/tools/nsc/symtab/classfile/PicklerTest.scala -scala/tools/nsc/transform/ErasureTest.scala -scala/tools/nsc/transform/MixinTest.scala -scala/tools/nsc/transform/ReleaseFenceTest.scala -scala/tools/nsc/transform/SpecializationTest.scala -scala/tools/nsc/transform/delambdafy/DelambdafyTest.scala -scala/tools/nsc/transform/patmat/SolvingTest.scala -scala/tools/nsc/transform/patmat/PatmatBytecodeTest.scala -scala/tools/nsc/typechecker/Implicits.scala -scala/tools/nsc/typechecker/Infer.scala -scala/tools/nsc/typechecker/NamerTest.scala -scala/tools/nsc/typechecker/OverridingPairsTest.scala -scala/tools/nsc/typechecker/ParamAliasTest.scala -scala/tools/nsc/typechecker/TypedTreeTest.scala -scala/tools/nsc/util/StackTraceTest.scala -scala/tools/testing/BytecodeTesting.scala -scala/tools/testing/RunTesting.scala -scala/tools/testing/VirtualCompilerTesting.scala -scala/util/ChainingOpsTest.scala -scala/util/matching/RegexTest.scala - -## Do not link -scala/CollectTest.scala -scala/MatchErrorSerializationTest.scala -scala/PartialFunctionSerializationTest.scala -scala/lang/stringinterpol/StringContextTest.scala -scala/collection/IterableTest.scala -scala/collection/IteratorTest.scala -scala/collection/NewBuilderTest.scala -scala/collection/SeqViewTest.scala -scala/collection/SetMapConsistencyTest.scala -scala/collection/SetMapRulesTest.scala -scala/collection/concurrent/TrieMapTest.scala -scala/collection/convert/WrapperSerializationTest.scala -scala/collection/immutable/ChampMapSmokeTest.scala -scala/collection/immutable/ChampSetSmokeTest.scala -scala/collection/immutable/LazyListGCTest.scala -scala/collection/immutable/LazyListLazinessTest.scala -scala/collection/immutable/ListTest.scala -scala/collection/immutable/SerializationTest.scala -scala/collection/immutable/StreamTest.scala -scala/collection/immutable/StringLikeTest.scala -scala/collection/immutable/VectorTest.scala -scala/collection/mutable/ArrayBufferTest.scala -scala/collection/mutable/OpenHashMapTest.scala -scala/collection/mutable/PriorityQueueTest.scala -scala/collection/mutable/SerializationTest.scala -scala/concurrent/FutureTest.scala -scala/concurrent/duration/SerializationTest.scala -scala/concurrent/impl/DefaultPromiseTest.scala -scala/io/SourceTest.scala -scala/jdk/AccumulatorTest.scala -scala/jdk/DurationConvertersTest.scala -scala/jdk/FunctionConvertersTest.scala -scala/jdk/OptionConvertersTest.scala -scala/jdk/StepperConversionTest.scala -scala/jdk/StepperTest.scala -scala/jdk/StreamConvertersTest.scala -scala/jdk/StreamConvertersTypingTest.scala -scala/math/OrderingTest.scala -scala/runtime/ScalaRunTimeTest.scala -scala/sys/process/ParserTest.scala -scala/sys/process/PipedProcessTest.scala -scala/sys/process/ProcessBuilderTest.scala -scala/sys/process/ProcessTest.scala -scala/tools/testing/AssertUtilTest.scala -scala/tools/testing/AssertThrowsTest.scala -scala/util/PropertiesTest.scala -scala/util/SpecVersionTest.scala -scala/util/SystemPropertiesTest.scala - -## Tests fail - -# Reflection -scala/reflect/ClassTagTest.scala - -# Require strict-floats -scala/math/BigDecimalTest.scala - -# Tests passed but are too slow (timeouts) -scala/collection/immutable/ListSetTest.scala -scala/util/SortingTest.scala - -# Relies on undefined behavior -scala/collection/StringOpsTest.scala -scala/collection/StringParsersTest.scala -scala/collection/convert/MapWrapperTest.scala diff --git a/scala-test-suite/src/test/resources/2.13.1/BlacklistedTests.txt b/scala-test-suite/src/test/resources/2.13.1/BlacklistedTests.txt deleted file mode 100644 index 70b0dce1a0..0000000000 --- a/scala-test-suite/src/test/resources/2.13.1/BlacklistedTests.txt +++ /dev/null @@ -1,181 +0,0 @@ -## Do not compile -scala/ExtractorTest.scala -scala/OptionTest.scala -scala/SerializationStabilityTest.scala -scala/StringTest.scala -scala/collection/FactoriesTest.scala -scala/collection/LazyZipOpsTest.scala -scala/collection/immutable/IndexedSeqTest.scala -scala/collection/immutable/RangeTest.scala -scala/lang/annotations/BytecodeTest.scala -scala/lang/annotations/RunTest.scala -scala/lang/traits/BytecodeTest.scala -scala/lang/traits/RunTest.scala -scala/lang/primitives/NaNTest.scala -scala/reflect/ClassOfTest.scala -scala/reflect/FieldAccessTest.scala -scala/reflect/QTest.scala -scala/reflect/io/ZipArchiveTest.scala -scala/reflect/internal/Infer.scala -scala/reflect/internal/LongNamesTest.scala -scala/reflect/internal/MirrorsTest.scala -scala/reflect/internal/NamesTest.scala -scala/reflect/internal/PositionsTest.scala -scala/reflect/internal/PrintersTest.scala -scala/reflect/internal/ScopeTest.scala -scala/reflect/internal/TreeGenTest.scala -scala/reflect/internal/TypesTest.scala -scala/reflect/internal/util/AbstractFileClassLoaderTest.scala -scala/reflect/internal/util/FileUtilsTest.scala -scala/reflect/internal/util/SourceFileTest.scala -scala/reflect/internal/util/StringOpsTest.scala -scala/reflect/internal/util/WeakHashSetTest.scala -scala/reflect/io/AbstractFileTest.scala -scala/reflect/runtime/ThreadSafetyTest.scala -scala/tools/cmd/CommandLineParserTest.scala -scala/tools/nsc/DeterminismTest.scala -scala/tools/nsc/FileUtils.scala -scala/tools/nsc/GlobalCustomizeClassloaderTest.scala -scala/tools/nsc/PhaseAssemblyTest.scala -scala/tools/nsc/PipelineMainTest.scala -scala/tools/nsc/ScriptRunnerTest.scala -scala/tools/nsc/backend/jvm/BTypesTest.scala -scala/tools/nsc/backend/jvm/BytecodeTest.scala -scala/tools/nsc/backend/jvm/DefaultMethodTest.scala -scala/tools/nsc/backend/jvm/DirectCompileTest.scala -scala/tools/nsc/backend/jvm/GenericSignaturesTest.scala -scala/tools/nsc/backend/jvm/IndyLambdaTest.scala -scala/tools/nsc/backend/jvm/IndySammyTest.scala -scala/tools/nsc/backend/jvm/InnerClassAttributeTest.scala -scala/tools/nsc/backend/jvm/NestedClassesCollectorTest.scala -scala/tools/nsc/backend/jvm/OptimizedBytecodeTest.scala -scala/tools/nsc/backend/jvm/PerRunInitTest.scala -scala/tools/nsc/backend/jvm/StringConcatTest.scala -scala/tools/nsc/backend/jvm/analysis/NullnessAnalyzerTest.scala -scala/tools/nsc/backend/jvm/analysis/ProdConsAnalyzerTest.scala -scala/tools/nsc/backend/jvm/analysis/TypeFlowAnalyzerTest.scala -scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala -scala/tools/nsc/backend/jvm/opt/BTypesFromClassfileTest.scala -scala/tools/nsc/backend/jvm/opt/BoxUnboxTest.scala -scala/tools/nsc/backend/jvm/opt/CallGraphTest.scala -scala/tools/nsc/backend/jvm/opt/ClosureOptimizerTest.scala -scala/tools/nsc/backend/jvm/opt/CompactLocalVariablesTest.scala -scala/tools/nsc/backend/jvm/opt/EmptyExceptionHandlersTest.scala -scala/tools/nsc/backend/jvm/opt/EmptyLabelsAndLineNumbersTest.scala -scala/tools/nsc/backend/jvm/opt/InlineInfoTest.scala -scala/tools/nsc/backend/jvm/opt/InlinerIllegalAccessTest.scala -scala/tools/nsc/backend/jvm/opt/InlinerSeparateCompilationTest.scala -scala/tools/nsc/backend/jvm/opt/InlinerTest.scala -scala/tools/nsc/backend/jvm/opt/InlineSourceMatcherTest.scala -scala/tools/nsc/backend/jvm/opt/InlineWarningTest.scala -scala/tools/nsc/backend/jvm/opt/MethodLevelOptsTest.scala -scala/tools/nsc/backend/jvm/opt/ScalaInlineInfoTest.scala -scala/tools/nsc/backend/jvm/opt/SimplifyJumpsTest.scala -scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala -scala/tools/nsc/backend/jvm/opt/UnusedLocalVariablesTest.scala -scala/tools/nsc/classpath/AggregateClassPathTest.scala -scala/tools/nsc/classpath/JrtClassPathTest.scala -scala/tools/nsc/classpath/MultiReleaseJarTest.scala -scala/tools/nsc/classpath/PathResolverBaseTest.scala -scala/tools/nsc/classpath/VirtualDirectoryClassPathTest.scala -scala/tools/nsc/classpath/ZipAndJarFileLookupFactoryTest.scala -scala/tools/nsc/doc/html/HtmlDocletTest.scala -scala/tools/nsc/doc/html/StringLiteralTest.scala -scala/tools/nsc/interpreter/CompletionTest.scala -scala/tools/nsc/interpreter/ScriptedTest.scala -scala/tools/nsc/interpreter/TabulatorTest.scala -scala/tools/nsc/parser/ParserTest.scala -scala/tools/nsc/reporters/ConsoleReporterTest.scala -scala/tools/nsc/reporters/PositionFilterTest.scala -scala/tools/nsc/settings/ScalaVersionTest.scala -scala/tools/nsc/settings/SettingsTest.scala -scala/tools/nsc/settings/TargetTest.scala -scala/tools/nsc/symtab/CannotHaveAttrsTest.scala -scala/tools/nsc/symtab/FlagsTest.scala -scala/tools/nsc/symtab/FreshNameExtractorTest.scala -scala/tools/nsc/symtab/StdNamesTest.scala -scala/tools/nsc/symtab/SymbolTableForUnitTesting.scala -scala/tools/nsc/symtab/SymbolTableTest.scala -scala/tools/nsc/symtab/classfile/PicklerTest.scala -scala/tools/nsc/transform/ErasureTest.scala -scala/tools/nsc/transform/MixinTest.scala -scala/tools/nsc/transform/ReleaseFenceTest.scala -scala/tools/nsc/transform/SpecializationTest.scala -scala/tools/nsc/transform/delambdafy/DelambdafyTest.scala -scala/tools/nsc/transform/patmat/SolvingTest.scala -scala/tools/nsc/transform/patmat/PatmatBytecodeTest.scala -scala/tools/nsc/typechecker/Implicits.scala -scala/tools/nsc/typechecker/Infer.scala -scala/tools/nsc/typechecker/NamerTest.scala -scala/tools/nsc/typechecker/OverridingPairsTest.scala -scala/tools/nsc/typechecker/ParamAliasTest.scala -scala/tools/nsc/typechecker/TypedTreeTest.scala -scala/tools/nsc/util/StackTraceTest.scala -scala/util/ChainingOpsTest.scala -scala/util/matching/RegexTest.scala - -## Do not link -scala/CollectTest.scala -scala/MatchErrorSerializationTest.scala -scala/PartialFunctionSerializationTest.scala -scala/lang/stringinterpol/StringContextTest.scala -scala/collection/IterableTest.scala -scala/collection/IteratorTest.scala -scala/collection/NewBuilderTest.scala -scala/collection/SeqViewTest.scala -scala/collection/SetMapConsistencyTest.scala -scala/collection/SetMapRulesTest.scala -scala/collection/concurrent/TrieMapTest.scala -scala/collection/convert/WrapperSerializationTest.scala -scala/collection/immutable/ChampMapSmokeTest.scala -scala/collection/immutable/ChampSetSmokeTest.scala -scala/collection/immutable/LazyListGCTest.scala -scala/collection/immutable/LazyListLazinessTest.scala -scala/collection/immutable/ListTest.scala -scala/collection/immutable/SerializationTest.scala -scala/collection/immutable/StreamTest.scala -scala/collection/immutable/StringLikeTest.scala -scala/collection/immutable/VectorTest.scala -scala/collection/mutable/ArrayBufferTest.scala -scala/collection/mutable/OpenHashMapTest.scala -scala/collection/mutable/PriorityQueueTest.scala -scala/collection/mutable/SerializationTest.scala -scala/concurrent/FutureTest.scala -scala/concurrent/duration/SerializationTest.scala -scala/concurrent/impl/DefaultPromiseTest.scala -scala/io/SourceTest.scala -scala/jdk/AccumulatorTest.scala -scala/jdk/DurationConvertersTest.scala -scala/jdk/FunctionConvertersTest.scala -scala/jdk/OptionConvertersTest.scala -scala/jdk/StepperConversionTest.scala -scala/jdk/StepperTest.scala -scala/jdk/StreamConvertersTest.scala -scala/jdk/StreamConvertersTypingTest.scala -scala/math/OrderingTest.scala -scala/runtime/ScalaRunTimeTest.scala -scala/sys/process/ParserTest.scala -scala/sys/process/PipedProcessTest.scala -scala/sys/process/ProcessBuilderTest.scala -scala/sys/process/ProcessTest.scala -scala/tools/testkit/AssertUtilTest.scala -scala/util/PropertiesTest.scala -scala/util/SpecVersionTest.scala -scala/util/SystemPropertiesTest.scala - -## Tests fail - -# Reflection -scala/reflect/ClassTagTest.scala - -# Require strict-floats -scala/math/BigDecimalTest.scala - -# Tests passed but are too slow (timeouts) -scala/collection/immutable/ListSetTest.scala -scala/util/SortingTest.scala - -# Relies on undefined behavior -scala/collection/StringOpsTest.scala -scala/collection/StringParsersTest.scala -scala/collection/convert/MapWrapperTest.scala diff --git a/scala-test-suite/src/test/resources/2.13.2/BlacklistedTests.txt b/scala-test-suite/src/test/resources/2.13.2/BlacklistedTests.txt deleted file mode 100644 index 7ad0c9c4c5..0000000000 --- a/scala-test-suite/src/test/resources/2.13.2/BlacklistedTests.txt +++ /dev/null @@ -1,190 +0,0 @@ -## Do not compile -scala/ExtractorTest.scala -scala/OptionTest.scala -scala/SerializationStabilityTest.scala -scala/StringTest.scala -scala/collection/FactoriesTest.scala -scala/collection/LazyZipOpsTest.scala -scala/collection/immutable/IndexedSeqTest.scala -scala/collection/immutable/MapHashcodeTest.scala -scala/collection/immutable/RangeTest.scala -scala/collection/mutable/BitSetTest.scala -scala/lang/annotations/BytecodeTest.scala -scala/lang/annotations/RunTest.scala -scala/lang/traits/BytecodeTest.scala -scala/lang/traits/RunTest.scala -scala/lang/primitives/NaNTest.scala -scala/reflect/ClassOfTest.scala -scala/reflect/FieldAccessTest.scala -scala/reflect/QTest.scala -scala/reflect/io/ZipArchiveTest.scala -scala/reflect/internal/Infer.scala -scala/reflect/internal/LongNamesTest.scala -scala/reflect/internal/MirrorsTest.scala -scala/reflect/internal/NamesTest.scala -scala/reflect/internal/PositionsTest.scala -scala/reflect/internal/PrintersTest.scala -scala/reflect/internal/ScopeTest.scala -scala/reflect/internal/TreeGenTest.scala -scala/reflect/internal/TypesTest.scala -scala/reflect/internal/util/AbstractFileClassLoaderTest.scala -scala/reflect/internal/util/FileUtilsTest.scala -scala/reflect/internal/util/SourceFileTest.scala -scala/reflect/internal/util/StringOpsTest.scala -scala/reflect/internal/util/WeakHashSetTest.scala -scala/reflect/io/AbstractFileTest.scala -scala/reflect/runtime/ThreadSafetyTest.scala -scala/tools/cmd/CommandLineParserTest.scala -scala/tools/nsc/Build.scala -scala/tools/nsc/DeterminismTest.scala -scala/tools/nsc/FileUtils.scala -scala/tools/nsc/GlobalCustomizeClassloaderTest.scala -scala/tools/nsc/PhaseAssemblyTest.scala -scala/tools/nsc/PickleWriteTest.scala -scala/tools/nsc/PipelineMainTest.scala -scala/tools/nsc/ScriptRunnerTest.scala -scala/tools/nsc/backend/jvm/BTypesTest.scala -scala/tools/nsc/backend/jvm/BytecodeTest.scala -scala/tools/nsc/backend/jvm/DefaultMethodTest.scala -scala/tools/nsc/backend/jvm/DirectCompileTest.scala -scala/tools/nsc/backend/jvm/GenericSignaturesTest.scala -scala/tools/nsc/backend/jvm/IndyLambdaTest.scala -scala/tools/nsc/backend/jvm/IndySammyTest.scala -scala/tools/nsc/backend/jvm/InnerClassAttributeTest.scala -scala/tools/nsc/backend/jvm/NestedClassesCollectorTest.scala -scala/tools/nsc/backend/jvm/OptimizedBytecodeTest.scala -scala/tools/nsc/backend/jvm/PerRunInitTest.scala -scala/tools/nsc/backend/jvm/StringConcatTest.scala -scala/tools/nsc/backend/jvm/analysis/NullnessAnalyzerTest.scala -scala/tools/nsc/backend/jvm/analysis/ProdConsAnalyzerTest.scala -scala/tools/nsc/backend/jvm/analysis/TypeFlowAnalyzerTest.scala -scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala -scala/tools/nsc/backend/jvm/opt/BTypesFromClassfileTest.scala -scala/tools/nsc/backend/jvm/opt/BoxUnboxTest.scala -scala/tools/nsc/backend/jvm/opt/CallGraphTest.scala -scala/tools/nsc/backend/jvm/opt/ClosureOptimizerTest.scala -scala/tools/nsc/backend/jvm/opt/CompactLocalVariablesTest.scala -scala/tools/nsc/backend/jvm/opt/EmptyExceptionHandlersTest.scala -scala/tools/nsc/backend/jvm/opt/EmptyLabelsAndLineNumbersTest.scala -scala/tools/nsc/backend/jvm/opt/InlineInfoTest.scala -scala/tools/nsc/backend/jvm/opt/InlinerIllegalAccessTest.scala -scala/tools/nsc/backend/jvm/opt/InlinerSeparateCompilationTest.scala -scala/tools/nsc/backend/jvm/opt/InlinerTest.scala -scala/tools/nsc/backend/jvm/opt/InlineSourceMatcherTest.scala -scala/tools/nsc/backend/jvm/opt/InlineWarningTest.scala -scala/tools/nsc/backend/jvm/opt/MethodLevelOptsTest.scala -scala/tools/nsc/backend/jvm/opt/ScalaInlineInfoTest.scala -scala/tools/nsc/backend/jvm/opt/SimplifyJumpsTest.scala -scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala -scala/tools/nsc/backend/jvm/opt/UnusedLocalVariablesTest.scala -scala/tools/nsc/classpath/AggregateClassPathTest.scala -scala/tools/nsc/classpath/JrtClassPathTest.scala -scala/tools/nsc/classpath/MultiReleaseJarTest.scala -scala/tools/nsc/classpath/PathResolverBaseTest.scala -scala/tools/nsc/classpath/VirtualDirectoryClassPathTest.scala -scala/tools/nsc/classpath/ZipAndJarFileLookupFactoryTest.scala -scala/tools/nsc/doc/html/HtmlDocletTest.scala -scala/tools/nsc/doc/html/StringLiteralTest.scala -scala/tools/nsc/interpreter/CompletionTest.scala -scala/tools/nsc/interpreter/ScriptedTest.scala -scala/tools/nsc/interpreter/TabulatorTest.scala -scala/tools/nsc/parser/ParserTest.scala -scala/tools/nsc/reporters/ConsoleReporterTest.scala -scala/tools/nsc/reporters/PositionFilterTest.scala -scala/tools/nsc/reporters/WConfTest.scala -scala/tools/nsc/settings/ScalaVersionTest.scala -scala/tools/nsc/settings/SettingsTest.scala -scala/tools/nsc/settings/TargetTest.scala -scala/tools/nsc/symtab/CannotHaveAttrsTest.scala -scala/tools/nsc/symtab/FlagsTest.scala -scala/tools/nsc/symtab/FreshNameExtractorTest.scala -scala/tools/nsc/symtab/StdNamesTest.scala -scala/tools/nsc/symtab/SymbolTableForUnitTesting.scala -scala/tools/nsc/symtab/SymbolTableTest.scala -scala/tools/nsc/symtab/classfile/PicklerTest.scala -scala/tools/nsc/transform/ErasureTest.scala -scala/tools/nsc/transform/MixinTest.scala -scala/tools/nsc/transform/ReleaseFenceTest.scala -scala/tools/nsc/transform/SpecializationTest.scala -scala/tools/nsc/transform/UncurryTest.scala -scala/tools/nsc/transform/delambdafy/DelambdafyTest.scala -scala/tools/nsc/transform/patmat/SolvingTest.scala -scala/tools/nsc/transform/patmat/PatmatBytecodeTest.scala -scala/tools/nsc/typechecker/Implicits.scala -scala/tools/nsc/typechecker/Infer.scala -scala/tools/nsc/typechecker/NamerTest.scala -scala/tools/nsc/typechecker/OverridingPairsTest.scala -scala/tools/nsc/typechecker/ParamAliasTest.scala -scala/tools/nsc/typechecker/TypedTreeTest.scala -scala/tools/nsc/util/StackTraceTest.scala -scala/util/ChainingOpsTest.scala -scala/util/TryTest.scala -scala/util/matching/RegexTest.scala - -## Do not link -scala/CollectTest.scala -scala/MatchErrorSerializationTest.scala -scala/PartialFunctionSerializationTest.scala -scala/lang/stringinterpol/StringContextTest.scala -scala/collection/IterableTest.scala -scala/collection/IteratorTest.scala -scala/collection/NewBuilderTest.scala -scala/collection/SeqViewTest.scala -scala/collection/SetMapConsistencyTest.scala -scala/collection/SetMapRulesTest.scala -scala/collection/concurrent/TrieMapTest.scala -scala/collection/convert/WrapperSerializationTest.scala -scala/collection/immutable/ChampMapSmokeTest.scala -scala/collection/immutable/ChampSetSmokeTest.scala -scala/collection/immutable/LazyListGCTest.scala -scala/collection/immutable/LazyListLazinessTest.scala -scala/collection/immutable/ListTest.scala -scala/collection/immutable/SerializationTest.scala -scala/collection/immutable/StreamTest.scala -scala/collection/immutable/StringLikeTest.scala -scala/collection/immutable/VectorTest.scala -scala/collection/mutable/AnyRefMapTest.scala -scala/collection/mutable/ArrayBufferTest.scala -scala/collection/mutable/OpenHashMapTest.scala -scala/collection/mutable/PriorityQueueTest.scala -scala/collection/mutable/SerializationTest.scala -scala/concurrent/FutureTest.scala -scala/concurrent/duration/SerializationTest.scala -scala/concurrent/impl/DefaultPromiseTest.scala -scala/io/SourceTest.scala -scala/jdk/AccumulatorTest.scala -scala/jdk/DurationConvertersTest.scala -scala/jdk/FunctionConvertersTest.scala -scala/jdk/OptionConvertersTest.scala -scala/jdk/StepperConversionTest.scala -scala/jdk/StepperTest.scala -scala/jdk/StreamConvertersTest.scala -scala/jdk/StreamConvertersTypingTest.scala -scala/math/OrderingTest.scala -scala/runtime/ScalaRunTimeTest.scala -scala/sys/env.scala -scala/sys/process/ParserTest.scala -scala/sys/process/PipedProcessTest.scala -scala/sys/process/ProcessBuilderTest.scala -scala/sys/process/ProcessTest.scala -scala/tools/testkit/AssertUtilTest.scala -scala/util/PropertiesTest.scala -scala/util/SpecVersionTest.scala -scala/util/SystemPropertiesTest.scala - -## Tests fail - -# Reflection -scala/reflect/ClassTagTest.scala - -# Require strict-floats -scala/math/BigDecimalTest.scala - -# Tests passed but are too slow (timeouts) -scala/collection/immutable/ListSetTest.scala -scala/util/SortingTest.scala - -# Relies on undefined behavior -scala/collection/StringOpsTest.scala -scala/collection/StringParsersTest.scala -scala/collection/convert/MapWrapperTest.scala diff --git a/scalalib/overrides-2.13.0/scala/Symbol.scala b/scalalib/overrides-2.13.0/scala/Symbol.scala deleted file mode 100644 index 0000b5fe6f..0000000000 --- a/scalalib/overrides-2.13.0/scala/Symbol.scala +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Scala (https://www.scala-lang.org) - * - * Copyright EPFL and Lightbend, Inc. - * - * Licensed under Apache License 2.0 - * (http://www.apache.org/licenses/LICENSE-2.0). - * - * See the NOTICE file distributed with this work for - * additional information regarding copyright ownership. - */ - -package scala - -import scala.scalajs.js - -/** This class provides a simple way to get unique objects for equal strings. - * Since symbols are interned, they can be compared using reference equality. - * Instances of `Symbol` can be created easily with Scala's built-in quote - * mechanism. - * - * For instance, the Scala term `'mysym` will - * invoke the constructor of the `Symbol` class in the following way: - * `Symbol("mysym")`. - * - * @author Martin Odersky, Iulian Dragos - * @since 1.7 - */ -final class Symbol private (val name: String) extends Serializable { - /** Converts this symbol to a string. - */ - override def toString(): String = "'" + name - - @throws(classOf[java.io.ObjectStreamException]) - private def readResolve(): Any = Symbol.apply(name) - override def hashCode = name.hashCode() - override def equals(other: Any) = this eq other.asInstanceOf[AnyRef] -} - -// Modified to use Scala.js specific cache -object Symbol extends JSUniquenessCache[Symbol] { - override def apply(name: String): Symbol = super.apply(name) - protected def valueFromKey(name: String): Symbol = new Symbol(name) - protected def keyFromValue(sym: Symbol): Option[String] = Some(sym.name) -} - -private[scala] abstract class JSUniquenessCache[V] -{ - private val cache = js.Dictionary.empty[V] - - protected def valueFromKey(k: String): V - protected def keyFromValue(v: V): Option[String] - - def apply(name: String): V = - cache.getOrElseUpdate(name, valueFromKey(name)) - - def unapply(other: V): Option[String] = keyFromValue(other) -} - -/** This is private so it won't appear in the library API, but - * abstracted to offer some hope of reusability. */ -/* DELETED for Scala.js -private[scala] abstract class UniquenessCache[K >: js.String, V >: Null] -{ - - import java.lang.ref.WeakReference - import java.util.WeakHashMap - import java.util.concurrent.locks.ReentrantReadWriteLock - - private[this] val rwl = new ReentrantReadWriteLock() - private[this] val rlock = rwl.readLock - private[this] val wlock = rwl.writeLock - private[this] val map = new WeakHashMap[K, WeakReference[V]] - - protected def valueFromKey(k: K): V - protected def keyFromValue(v: V): Option[K] - - def apply(name: K): V = { - def cached(): V = { - rlock.lock - try { - val reference = map get name - if (reference == null) null - else reference.get // will be null if we were gc-ed - } - finally rlock.unlock - } - def updateCache(): V = { - wlock.lock - try { - val res = cached() - if (res != null) res - else { - // If we don't remove the old String key from the map, we can - // wind up with one String as the key and a different String as - // the name field in the Symbol, which can lead to surprising GC - // behavior and duplicate Symbols. See scala/bug#6706. - map remove name - val sym = valueFromKey(name) - map.put(name, new WeakReference(sym)) - sym - } - } - finally wlock.unlock - } - - val res = cached() - if (res == null) updateCache() - else res - } - def unapply(other: V): Option[K] = keyFromValue(other) -} -*/ diff --git a/scalalib/overrides-2.13.1/scala/Symbol.scala b/scalalib/overrides-2.13.1/scala/Symbol.scala deleted file mode 100644 index 0000b5fe6f..0000000000 --- a/scalalib/overrides-2.13.1/scala/Symbol.scala +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Scala (https://www.scala-lang.org) - * - * Copyright EPFL and Lightbend, Inc. - * - * Licensed under Apache License 2.0 - * (http://www.apache.org/licenses/LICENSE-2.0). - * - * See the NOTICE file distributed with this work for - * additional information regarding copyright ownership. - */ - -package scala - -import scala.scalajs.js - -/** This class provides a simple way to get unique objects for equal strings. - * Since symbols are interned, they can be compared using reference equality. - * Instances of `Symbol` can be created easily with Scala's built-in quote - * mechanism. - * - * For instance, the Scala term `'mysym` will - * invoke the constructor of the `Symbol` class in the following way: - * `Symbol("mysym")`. - * - * @author Martin Odersky, Iulian Dragos - * @since 1.7 - */ -final class Symbol private (val name: String) extends Serializable { - /** Converts this symbol to a string. - */ - override def toString(): String = "'" + name - - @throws(classOf[java.io.ObjectStreamException]) - private def readResolve(): Any = Symbol.apply(name) - override def hashCode = name.hashCode() - override def equals(other: Any) = this eq other.asInstanceOf[AnyRef] -} - -// Modified to use Scala.js specific cache -object Symbol extends JSUniquenessCache[Symbol] { - override def apply(name: String): Symbol = super.apply(name) - protected def valueFromKey(name: String): Symbol = new Symbol(name) - protected def keyFromValue(sym: Symbol): Option[String] = Some(sym.name) -} - -private[scala] abstract class JSUniquenessCache[V] -{ - private val cache = js.Dictionary.empty[V] - - protected def valueFromKey(k: String): V - protected def keyFromValue(v: V): Option[String] - - def apply(name: String): V = - cache.getOrElseUpdate(name, valueFromKey(name)) - - def unapply(other: V): Option[String] = keyFromValue(other) -} - -/** This is private so it won't appear in the library API, but - * abstracted to offer some hope of reusability. */ -/* DELETED for Scala.js -private[scala] abstract class UniquenessCache[K >: js.String, V >: Null] -{ - - import java.lang.ref.WeakReference - import java.util.WeakHashMap - import java.util.concurrent.locks.ReentrantReadWriteLock - - private[this] val rwl = new ReentrantReadWriteLock() - private[this] val rlock = rwl.readLock - private[this] val wlock = rwl.writeLock - private[this] val map = new WeakHashMap[K, WeakReference[V]] - - protected def valueFromKey(k: K): V - protected def keyFromValue(v: V): Option[K] - - def apply(name: K): V = { - def cached(): V = { - rlock.lock - try { - val reference = map get name - if (reference == null) null - else reference.get // will be null if we were gc-ed - } - finally rlock.unlock - } - def updateCache(): V = { - wlock.lock - try { - val res = cached() - if (res != null) res - else { - // If we don't remove the old String key from the map, we can - // wind up with one String as the key and a different String as - // the name field in the Symbol, which can lead to surprising GC - // behavior and duplicate Symbols. See scala/bug#6706. - map remove name - val sym = valueFromKey(name) - map.put(name, new WeakReference(sym)) - sym - } - } - finally wlock.unlock - } - - val res = cached() - if (res == null) updateCache() - else res - } - def unapply(other: V): Option[K] = keyFromValue(other) -} -*/ diff --git a/scalalib/overrides-2.13.2/scala/Symbol.scala b/scalalib/overrides-2.13.2/scala/Symbol.scala deleted file mode 100644 index 0000b5fe6f..0000000000 --- a/scalalib/overrides-2.13.2/scala/Symbol.scala +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Scala (https://www.scala-lang.org) - * - * Copyright EPFL and Lightbend, Inc. - * - * Licensed under Apache License 2.0 - * (http://www.apache.org/licenses/LICENSE-2.0). - * - * See the NOTICE file distributed with this work for - * additional information regarding copyright ownership. - */ - -package scala - -import scala.scalajs.js - -/** This class provides a simple way to get unique objects for equal strings. - * Since symbols are interned, they can be compared using reference equality. - * Instances of `Symbol` can be created easily with Scala's built-in quote - * mechanism. - * - * For instance, the Scala term `'mysym` will - * invoke the constructor of the `Symbol` class in the following way: - * `Symbol("mysym")`. - * - * @author Martin Odersky, Iulian Dragos - * @since 1.7 - */ -final class Symbol private (val name: String) extends Serializable { - /** Converts this symbol to a string. - */ - override def toString(): String = "'" + name - - @throws(classOf[java.io.ObjectStreamException]) - private def readResolve(): Any = Symbol.apply(name) - override def hashCode = name.hashCode() - override def equals(other: Any) = this eq other.asInstanceOf[AnyRef] -} - -// Modified to use Scala.js specific cache -object Symbol extends JSUniquenessCache[Symbol] { - override def apply(name: String): Symbol = super.apply(name) - protected def valueFromKey(name: String): Symbol = new Symbol(name) - protected def keyFromValue(sym: Symbol): Option[String] = Some(sym.name) -} - -private[scala] abstract class JSUniquenessCache[V] -{ - private val cache = js.Dictionary.empty[V] - - protected def valueFromKey(k: String): V - protected def keyFromValue(v: V): Option[String] - - def apply(name: String): V = - cache.getOrElseUpdate(name, valueFromKey(name)) - - def unapply(other: V): Option[String] = keyFromValue(other) -} - -/** This is private so it won't appear in the library API, but - * abstracted to offer some hope of reusability. */ -/* DELETED for Scala.js -private[scala] abstract class UniquenessCache[K >: js.String, V >: Null] -{ - - import java.lang.ref.WeakReference - import java.util.WeakHashMap - import java.util.concurrent.locks.ReentrantReadWriteLock - - private[this] val rwl = new ReentrantReadWriteLock() - private[this] val rlock = rwl.readLock - private[this] val wlock = rwl.writeLock - private[this] val map = new WeakHashMap[K, WeakReference[V]] - - protected def valueFromKey(k: K): V - protected def keyFromValue(v: V): Option[K] - - def apply(name: K): V = { - def cached(): V = { - rlock.lock - try { - val reference = map get name - if (reference == null) null - else reference.get // will be null if we were gc-ed - } - finally rlock.unlock - } - def updateCache(): V = { - wlock.lock - try { - val res = cached() - if (res != null) res - else { - // If we don't remove the old String key from the map, we can - // wind up with one String as the key and a different String as - // the name field in the Symbol, which can lead to surprising GC - // behavior and duplicate Symbols. See scala/bug#6706. - map remove name - val sym = valueFromKey(name) - map.put(name, new WeakReference(sym)) - sym - } - } - finally wlock.unlock - } - - val res = cached() - if (res == null) updateCache() - else res - } - def unapply(other: V): Option[K] = keyFromValue(other) -} -*/ diff --git a/test-suite/shared/src/test/scala/org/scalajs/testsuite/scalalib/SymbolTest.scala b/test-suite/shared/src/test/scala/org/scalajs/testsuite/scalalib/SymbolTest.scala index 15ecdef4b0..bc6ad8f53a 100644 --- a/test-suite/shared/src/test/scala/org/scalajs/testsuite/scalalib/SymbolTest.scala +++ b/test-suite/shared/src/test/scala/org/scalajs/testsuite/scalalib/SymbolTest.scala @@ -56,14 +56,7 @@ class SymbolTest { @Test def testToString(): Unit = { val scalajs = Symbol("ScalaJS") - val toStringUsesQuoteSyntax = { - scalaVersion.startsWith("2.12.") || - scalaVersion == "2.13.0" || - scalaVersion == "2.13.1" || - scalaVersion == "2.13.2" - } - - if (toStringUsesQuoteSyntax) { + if (scalaVersion.startsWith("2.12.")) { assertEquals("'ScalaJS", scalajs.toString) assertEquals("'$", Symbol("$").toString) assertEquals("'$$", Symbol("$$").toString)