diff --git a/compiler/src/dotty/tools/dotc/config/ScalaSettings.scala b/compiler/src/dotty/tools/dotc/config/ScalaSettings.scala index 643e69aa2471..7ad6e776b67e 100644 --- a/compiler/src/dotty/tools/dotc/config/ScalaSettings.scala +++ b/compiler/src/dotty/tools/dotc/config/ScalaSettings.scala @@ -166,6 +166,7 @@ class ScalaSettings extends Settings.SettingGroup { // Extremely experimental language features val YnoKindPolymorphism: Setting[Boolean] = BooleanSetting("-Yno-kind-polymorphism", "Enable kind polymorphism (see https://dotty.epfl.ch/docs/reference/kind-polymorphism.html). Potentially unsound.") val YexplicitNulls: Setting[Boolean] = BooleanSetting("-Yexplicit-nulls", "Make reference types non-nullable. Nullable types can be expressed with unions: e.g. String|Null.") + val YerasedTerms: Setting[Boolean] = BooleanSetting("-Yerased-terms", "Allows the use of erased terms.") /** Area-specific debug output */ val YexplainLowlevel: Setting[Boolean] = BooleanSetting("-Yexplain-lowlevel", "When explaining type errors, show types at a lower level.") diff --git a/compiler/src/dotty/tools/dotc/core/Definitions.scala b/compiler/src/dotty/tools/dotc/core/Definitions.scala index 127e6647f204..836ff4eef807 100644 --- a/compiler/src/dotty/tools/dotc/core/Definitions.scala +++ b/compiler/src/dotty/tools/dotc/core/Definitions.scala @@ -221,6 +221,7 @@ class Definitions { @tu lazy val ScalaXmlPackageClass: Symbol = ctx.getPackageClassIfDefined("scala.xml") @tu lazy val CompiletimePackageObject: Symbol = ctx.requiredModule("scala.compiletime.package") + @tu lazy val Compiletime_erasedValue : Symbol = CompiletimePackageObject.requiredMethod("erasedValue") @tu lazy val Compiletime_error : Symbol = CompiletimePackageObject.requiredMethod(nme.error) @tu lazy val Compiletime_constValue : Symbol = CompiletimePackageObject.requiredMethod("constValue") @tu lazy val Compiletime_constValueOpt: Symbol = CompiletimePackageObject.requiredMethod("constValueOpt") diff --git a/compiler/src/dotty/tools/dotc/typer/Checking.scala b/compiler/src/dotty/tools/dotc/typer/Checking.scala index 7df77bcee979..7e71230ebbb1 100644 --- a/compiler/src/dotty/tools/dotc/typer/Checking.scala +++ b/compiler/src/dotty/tools/dotc/typer/Checking.scala @@ -457,7 +457,8 @@ object Checking { sym.setFlag(Private) // break the overriding relationship by making sym Private } if (sym.is(Erased)) - checkApplicable(Erased, !sym.isOneOf(MutableOrLazy)) + if ctx.settings.YerasedTerms.value || sym == defn.Compiletime_erasedValue then checkApplicable(Erased, !sym.isOneOf(MutableOrLazy)) + else fail("cannot use `erased` without " + ctx.settings.YerasedTerms.name) } /** Check the type signature of the symbol `M` defined by `tree` does not refer diff --git a/compiler/test/dotty/tools/dotc/BootstrappedOnlyCompilationTests.scala b/compiler/test/dotty/tools/dotc/BootstrappedOnlyCompilationTests.scala index 95b2fd978068..104783d9c867 100644 --- a/compiler/test/dotty/tools/dotc/BootstrappedOnlyCompilationTests.scala +++ b/compiler/test/dotty/tools/dotc/BootstrappedOnlyCompilationTests.scala @@ -118,6 +118,7 @@ class BootstrappedOnlyCompilationTests extends ParallelTesting { aggregateTests( compileFilesInDir("tests/run-macros", defaultOptions), compileFilesInDir("tests/run-custom-args/Yretain-trees", defaultOptions and "-Yretain-trees"), + compileFilesInDir("tests/run-custom-args/run-macros-erased", defaultOptions and "-Yerased-terms"), ) }.checkRuns() diff --git a/compiler/test/dotty/tools/dotc/CompilationTests.scala b/compiler/test/dotty/tools/dotc/CompilationTests.scala index fe65b48bda91..feacb283ef40 100644 --- a/compiler/test/dotty/tools/dotc/CompilationTests.scala +++ b/compiler/test/dotty/tools/dotc/CompilationTests.scala @@ -47,6 +47,7 @@ class CompilationTests extends ParallelTesting { compileFilesInDir("tests/pos-special/isInstanceOf", allowDeepSubtypes.and("-Xfatal-warnings")), compileFilesInDir("tests/new", defaultOptions), compileFilesInDir("tests/pos-scala2", scala2CompatMode), + compileFilesInDir("tests/pos-custom-args/erased", defaultOptions.and("-Yerased-terms")), compileFilesInDir("tests/pos", defaultOptions), compileFilesInDir("tests/pos-deep-subtype", allowDeepSubtypes), compileFile( @@ -114,6 +115,7 @@ class CompilationTests extends ParallelTesting { compileFilesInDir("tests/neg-no-kind-polymorphism", defaultOptions and "-Yno-kind-polymorphism"), compileFilesInDir("tests/neg-custom-args/deprecation", defaultOptions.and("-Xfatal-warnings", "-deprecation")), compileFilesInDir("tests/neg-custom-args/fatal-warnings", defaultOptions.and("-Xfatal-warnings")), + compileFilesInDir("tests/neg-custom-args/erased", defaultOptions.and("-Yerased-terms")), compileFilesInDir("tests/neg-custom-args/allow-double-bindings", allowDoubleBindings), compileFilesInDir("tests/neg-custom-args/explicit-nulls", defaultOptions.and("-Yexplicit-nulls")), compileDir("tests/neg-custom-args/impl-conv", defaultOptions.and("-Xfatal-warnings", "-feature")), @@ -165,6 +167,7 @@ class CompilationTests extends ParallelTesting { compileFile("tests/run-custom-args/i5256.scala", allowDeepSubtypes), compileFile("tests/run-custom-args/fors.scala", defaultOptions and "-strict"), compileFile("tests/run-custom-args/no-useless-forwarders.scala", defaultOptions and "-Xmixin-force-forwarders:false"), + compileFilesInDir("tests/run-custom-args/erased", defaultOptions.and("-Yerased-terms")), compileFilesInDir("tests/run-deep-subtype", allowDeepSubtypes), compileFilesInDir("tests/run", defaultOptions) ).checkRuns() diff --git a/compiler/test/dotty/tools/repl/ReplTest.scala b/compiler/test/dotty/tools/repl/ReplTest.scala index ef740004756f..eb2a19a9cfb6 100644 --- a/compiler/test/dotty/tools/repl/ReplTest.scala +++ b/compiler/test/dotty/tools/repl/ReplTest.scala @@ -21,7 +21,9 @@ class ReplTest(withStaging: Boolean = false, out: ByteArrayOutputStream = new By TestConfiguration.withStagingClasspath else TestConfiguration.basicClasspath, - "-color:never"), + "-color:never", + "-Yerased-terms", + ), new PrintStream(out) ) with MessageRendering { /** Get the stored output from `out`, resetting the buffer */ diff --git a/tests/neg/erased-1.scala b/tests/neg-custom-args/erased/erased-1.scala similarity index 100% rename from tests/neg/erased-1.scala rename to tests/neg-custom-args/erased/erased-1.scala diff --git a/tests/neg/erased-2.scala b/tests/neg-custom-args/erased/erased-2.scala similarity index 100% rename from tests/neg/erased-2.scala rename to tests/neg-custom-args/erased/erased-2.scala diff --git a/tests/neg/erased-24.scala b/tests/neg-custom-args/erased/erased-24.scala similarity index 100% rename from tests/neg/erased-24.scala rename to tests/neg-custom-args/erased/erased-24.scala diff --git a/tests/neg/erased-3.scala b/tests/neg-custom-args/erased/erased-3.scala similarity index 100% rename from tests/neg/erased-3.scala rename to tests/neg-custom-args/erased/erased-3.scala diff --git a/tests/neg/erased-4.scala b/tests/neg-custom-args/erased/erased-4.scala similarity index 100% rename from tests/neg/erased-4.scala rename to tests/neg-custom-args/erased/erased-4.scala diff --git a/tests/neg/erased-5.scala b/tests/neg-custom-args/erased/erased-5.scala similarity index 100% rename from tests/neg/erased-5.scala rename to tests/neg-custom-args/erased/erased-5.scala diff --git a/tests/neg/erased-6.scala b/tests/neg-custom-args/erased/erased-6.scala similarity index 100% rename from tests/neg/erased-6.scala rename to tests/neg-custom-args/erased/erased-6.scala diff --git a/tests/neg/erased-args-lifted.scala b/tests/neg-custom-args/erased/erased-args-lifted.scala similarity index 100% rename from tests/neg/erased-args-lifted.scala rename to tests/neg-custom-args/erased/erased-args-lifted.scala diff --git a/tests/neg/erased-assign.scala b/tests/neg-custom-args/erased/erased-assign.scala similarity index 100% rename from tests/neg/erased-assign.scala rename to tests/neg-custom-args/erased/erased-assign.scala diff --git a/tests/neg/erased-case-class.scala b/tests/neg-custom-args/erased/erased-case-class.scala similarity index 100% rename from tests/neg/erased-case-class.scala rename to tests/neg-custom-args/erased/erased-case-class.scala diff --git a/tests/neg/erased-class.scala b/tests/neg-custom-args/erased/erased-class.scala similarity index 100% rename from tests/neg/erased-class.scala rename to tests/neg-custom-args/erased/erased-class.scala diff --git a/tests/neg/erased-def-rhs.scala b/tests/neg-custom-args/erased/erased-def-rhs.scala similarity index 100% rename from tests/neg/erased-def-rhs.scala rename to tests/neg-custom-args/erased/erased-def-rhs.scala diff --git a/tests/neg/erased-if-else.scala b/tests/neg-custom-args/erased/erased-if-else.scala similarity index 100% rename from tests/neg/erased-if-else.scala rename to tests/neg-custom-args/erased/erased-if-else.scala diff --git a/tests/neg/erased-implicit.scala b/tests/neg-custom-args/erased/erased-implicit.scala similarity index 100% rename from tests/neg/erased-implicit.scala rename to tests/neg-custom-args/erased/erased-implicit.scala diff --git a/tests/neg/erased-lazy-val.scala b/tests/neg-custom-args/erased/erased-lazy-val.scala similarity index 100% rename from tests/neg/erased-lazy-val.scala rename to tests/neg-custom-args/erased/erased-lazy-val.scala diff --git a/tests/neg/erased-machine-state-encoding-with-inline.scala b/tests/neg-custom-args/erased/erased-machine-state-encoding-with-inline.scala similarity index 100% rename from tests/neg/erased-machine-state-encoding-with-inline.scala rename to tests/neg-custom-args/erased/erased-machine-state-encoding-with-inline.scala diff --git a/tests/neg/erased-match.scala b/tests/neg-custom-args/erased/erased-match.scala similarity index 100% rename from tests/neg/erased-match.scala rename to tests/neg-custom-args/erased/erased-match.scala diff --git a/tests/neg/erased-object.scala b/tests/neg-custom-args/erased/erased-object.scala similarity index 100% rename from tests/neg/erased-object.scala rename to tests/neg-custom-args/erased/erased-object.scala diff --git a/tests/neg/erased-path.scala b/tests/neg-custom-args/erased/erased-path.scala similarity index 100% rename from tests/neg/erased-path.scala rename to tests/neg-custom-args/erased/erased-path.scala diff --git a/tests/neg/erased-pathdep-1.scala b/tests/neg-custom-args/erased/erased-pathdep-1.scala similarity index 100% rename from tests/neg/erased-pathdep-1.scala rename to tests/neg-custom-args/erased/erased-pathdep-1.scala diff --git a/tests/neg/erased-pathdep-2.scala b/tests/neg-custom-args/erased/erased-pathdep-2.scala similarity index 100% rename from tests/neg/erased-pathdep-2.scala rename to tests/neg-custom-args/erased/erased-pathdep-2.scala diff --git a/tests/neg/erased-return.scala b/tests/neg-custom-args/erased/erased-return.scala similarity index 100% rename from tests/neg/erased-return.scala rename to tests/neg-custom-args/erased/erased-return.scala diff --git a/tests/neg/erased-singleton.scala b/tests/neg-custom-args/erased/erased-singleton.scala similarity index 100% rename from tests/neg/erased-singleton.scala rename to tests/neg-custom-args/erased/erased-singleton.scala diff --git a/tests/neg/erased-trait.scala b/tests/neg-custom-args/erased/erased-trait.scala similarity index 100% rename from tests/neg/erased-trait.scala rename to tests/neg-custom-args/erased/erased-trait.scala diff --git a/tests/neg/erased-try.scala b/tests/neg-custom-args/erased/erased-try.scala similarity index 100% rename from tests/neg/erased-try.scala rename to tests/neg-custom-args/erased/erased-try.scala diff --git a/tests/neg/erased-type.scala b/tests/neg-custom-args/erased/erased-type.scala similarity index 100% rename from tests/neg/erased-type.scala rename to tests/neg-custom-args/erased/erased-type.scala diff --git a/tests/neg/erased-val-rhs.scala b/tests/neg-custom-args/erased/erased-val-rhs.scala similarity index 100% rename from tests/neg/erased-val-rhs.scala rename to tests/neg-custom-args/erased/erased-val-rhs.scala diff --git a/tests/neg/erased-value-class.scala b/tests/neg-custom-args/erased/erased-value-class.scala similarity index 100% rename from tests/neg/erased-value-class.scala rename to tests/neg-custom-args/erased/erased-value-class.scala diff --git a/tests/neg/erased-var.scala b/tests/neg-custom-args/erased/erased-var.scala similarity index 100% rename from tests/neg/erased-var.scala rename to tests/neg-custom-args/erased/erased-var.scala diff --git a/tests/neg/i4060.scala b/tests/neg-custom-args/i4060.scala similarity index 100% rename from tests/neg/i4060.scala rename to tests/neg-custom-args/i4060.scala diff --git a/tests/neg/inline-position/A_1.scala b/tests/neg-custom-args/inline-position/A_1.scala similarity index 100% rename from tests/neg/inline-position/A_1.scala rename to tests/neg-custom-args/inline-position/A_1.scala diff --git a/tests/neg/inline-position/B_2.scala b/tests/neg-custom-args/inline-position/B_2.scala similarity index 100% rename from tests/neg/inline-position/B_2.scala rename to tests/neg-custom-args/inline-position/B_2.scala diff --git a/tests/neg/nested-rewrites.scala b/tests/neg-custom-args/nested-rewrites.scala similarity index 100% rename from tests/neg/nested-rewrites.scala rename to tests/neg-custom-args/nested-rewrites.scala diff --git a/tests/neg/typeclass-derivation2.scala b/tests/neg-custom-args/typeclass-derivation2.scala similarity index 100% rename from tests/neg/typeclass-derivation2.scala rename to tests/neg-custom-args/typeclass-derivation2.scala diff --git a/tests/neg/typelevel-noeta.scala b/tests/neg-custom-args/typelevel-noeta.scala similarity index 100% rename from tests/neg/typelevel-noeta.scala rename to tests/neg-custom-args/typelevel-noeta.scala diff --git a/tests/pos/erased-args-lifted.scala b/tests/pos-custom-args/erased/erased-args-lifted.scala similarity index 100% rename from tests/pos/erased-args-lifted.scala rename to tests/pos-custom-args/erased/erased-args-lifted.scala diff --git a/tests/pos/erased-asInstanceOf.scala b/tests/pos-custom-args/erased/erased-asInstanceOf.scala similarity index 100% rename from tests/pos/erased-asInstanceOf.scala rename to tests/pos-custom-args/erased/erased-asInstanceOf.scala diff --git a/tests/pos/erased-deep-context.scala b/tests/pos-custom-args/erased/erased-deep-context.scala similarity index 100% rename from tests/pos/erased-deep-context.scala rename to tests/pos-custom-args/erased/erased-deep-context.scala diff --git a/tests/pos/erased-extension-method.scala b/tests/pos-custom-args/erased/erased-extension-method.scala similarity index 100% rename from tests/pos/erased-extension-method.scala rename to tests/pos-custom-args/erased/erased-extension-method.scala diff --git a/tests/pos/erased-lub-2.scala b/tests/pos-custom-args/erased/erased-lub-2.scala similarity index 100% rename from tests/pos/erased-lub-2.scala rename to tests/pos-custom-args/erased/erased-lub-2.scala diff --git a/tests/pos/erased-lub.scala b/tests/pos-custom-args/erased/erased-lub.scala similarity index 100% rename from tests/pos/erased-lub.scala rename to tests/pos-custom-args/erased/erased-lub.scala diff --git a/tests/pos/erased-typedef.scala b/tests/pos-custom-args/erased/erased-typedef.scala similarity index 100% rename from tests/pos/erased-typedef.scala rename to tests/pos-custom-args/erased/erased-typedef.scala diff --git a/tests/pos/i7868.scala b/tests/pos-custom-args/erased/i7868.scala similarity index 100% rename from tests/pos/i7868.scala rename to tests/pos-custom-args/erased/i7868.scala diff --git a/tests/pos/i7878.scala b/tests/pos-custom-args/erased/i7878.scala similarity index 100% rename from tests/pos/i7878.scala rename to tests/pos-custom-args/erased/i7878.scala diff --git a/tests/pos/i4125.scala b/tests/pos-custom-args/i4125.scala similarity index 100% rename from tests/pos/i4125.scala rename to tests/pos-custom-args/i4125.scala diff --git a/tests/pos/i4509.scala b/tests/pos-custom-args/i4509.scala similarity index 100% rename from tests/pos/i4509.scala rename to tests/pos-custom-args/i4509.scala diff --git a/tests/pos/i5938.scala b/tests/pos-custom-args/i5938.scala similarity index 100% rename from tests/pos/i5938.scala rename to tests/pos-custom-args/i5938.scala diff --git a/tests/pos/i6009a.scala b/tests/pos-custom-args/i6009a.scala similarity index 100% rename from tests/pos/i6009a.scala rename to tests/pos-custom-args/i6009a.scala diff --git a/tests/pos/i6009b.scala b/tests/pos-custom-args/i6009b.scala similarity index 100% rename from tests/pos/i6009b.scala rename to tests/pos-custom-args/i6009b.scala diff --git a/tests/pos/i6009c.scala b/tests/pos-custom-args/i6009c.scala similarity index 100% rename from tests/pos/i6009c.scala rename to tests/pos-custom-args/i6009c.scala diff --git a/tests/pos/i6419.scala b/tests/pos-custom-args/i6419.scala similarity index 100% rename from tests/pos/i6419.scala rename to tests/pos-custom-args/i6419.scala diff --git a/tests/pos/i7741.scala b/tests/pos-custom-args/i7741.scala similarity index 100% rename from tests/pos/i7741.scala rename to tests/pos-custom-args/i7741.scala diff --git a/tests/pos/inline-match-gadt.scala b/tests/pos-custom-args/inline-match-gadt.scala similarity index 100% rename from tests/pos/inline-match-gadt.scala rename to tests/pos-custom-args/inline-match-gadt.scala diff --git a/tests/pos/matchtype.scala b/tests/pos-custom-args/matchtype.scala similarity index 100% rename from tests/pos/matchtype.scala rename to tests/pos-custom-args/matchtype.scala diff --git a/tests/pos/phantom-Eq.scala b/tests/pos-custom-args/phantom-Eq.scala similarity index 100% rename from tests/pos/phantom-Eq.scala rename to tests/pos-custom-args/phantom-Eq.scala diff --git a/tests/pos/phantom-Eq2/Phantom-Eq_1.scala b/tests/pos-custom-args/phantom-Eq2/Phantom-Eq_1.scala similarity index 100% rename from tests/pos/phantom-Eq2/Phantom-Eq_1.scala rename to tests/pos-custom-args/phantom-Eq2/Phantom-Eq_1.scala diff --git a/tests/pos/phantom-Eq2/Phantom-Eq_2.scala b/tests/pos-custom-args/phantom-Eq2/Phantom-Eq_2.scala similarity index 100% rename from tests/pos/phantom-Eq2/Phantom-Eq_2.scala rename to tests/pos-custom-args/phantom-Eq2/Phantom-Eq_2.scala diff --git a/tests/pos/phantom-Evidence.scala b/tests/pos-custom-args/phantom-Evidence.scala similarity index 100% rename from tests/pos/phantom-Evidence.scala rename to tests/pos-custom-args/phantom-Evidence.scala diff --git a/tests/run/companion-loading.scala b/tests/run-custom-args/companion-loading.scala similarity index 100% rename from tests/run/companion-loading.scala rename to tests/run-custom-args/companion-loading.scala diff --git a/tests/run/erased-1.check b/tests/run-custom-args/erased/erased-1.check similarity index 100% rename from tests/run/erased-1.check rename to tests/run-custom-args/erased/erased-1.check diff --git a/tests/run/erased-1.scala b/tests/run-custom-args/erased/erased-1.scala similarity index 100% rename from tests/run/erased-1.scala rename to tests/run-custom-args/erased/erased-1.scala diff --git a/tests/run/erased-10.check b/tests/run-custom-args/erased/erased-10.check similarity index 100% rename from tests/run/erased-10.check rename to tests/run-custom-args/erased/erased-10.check diff --git a/tests/run/erased-10.scala b/tests/run-custom-args/erased/erased-10.scala similarity index 100% rename from tests/run/erased-10.scala rename to tests/run-custom-args/erased/erased-10.scala diff --git a/tests/run/erased-11.check b/tests/run-custom-args/erased/erased-11.check similarity index 100% rename from tests/run/erased-11.check rename to tests/run-custom-args/erased/erased-11.check diff --git a/tests/run/erased-11.scala b/tests/run-custom-args/erased/erased-11.scala similarity index 100% rename from tests/run/erased-11.scala rename to tests/run-custom-args/erased/erased-11.scala diff --git a/tests/run/erased-12.check b/tests/run-custom-args/erased/erased-12.check similarity index 100% rename from tests/run/erased-12.check rename to tests/run-custom-args/erased/erased-12.check diff --git a/tests/run/erased-12.scala b/tests/run-custom-args/erased/erased-12.scala similarity index 100% rename from tests/run/erased-12.scala rename to tests/run-custom-args/erased/erased-12.scala diff --git a/tests/run/erased-13.check b/tests/run-custom-args/erased/erased-13.check similarity index 100% rename from tests/run/erased-13.check rename to tests/run-custom-args/erased/erased-13.check diff --git a/tests/run/erased-13.scala b/tests/run-custom-args/erased/erased-13.scala similarity index 100% rename from tests/run/erased-13.scala rename to tests/run-custom-args/erased/erased-13.scala diff --git a/tests/run/erased-14.check b/tests/run-custom-args/erased/erased-14.check similarity index 100% rename from tests/run/erased-14.check rename to tests/run-custom-args/erased/erased-14.check diff --git a/tests/run/erased-14.scala b/tests/run-custom-args/erased/erased-14.scala similarity index 100% rename from tests/run/erased-14.scala rename to tests/run-custom-args/erased/erased-14.scala diff --git a/tests/run/erased-15.check b/tests/run-custom-args/erased/erased-15.check similarity index 100% rename from tests/run/erased-15.check rename to tests/run-custom-args/erased/erased-15.check diff --git a/tests/run/erased-15.scala b/tests/run-custom-args/erased/erased-15.scala similarity index 100% rename from tests/run/erased-15.scala rename to tests/run-custom-args/erased/erased-15.scala diff --git a/tests/run/erased-16.check b/tests/run-custom-args/erased/erased-16.check similarity index 100% rename from tests/run/erased-16.check rename to tests/run-custom-args/erased/erased-16.check diff --git a/tests/run/erased-16.scala b/tests/run-custom-args/erased/erased-16.scala similarity index 100% rename from tests/run/erased-16.scala rename to tests/run-custom-args/erased/erased-16.scala diff --git a/tests/run/erased-17.check b/tests/run-custom-args/erased/erased-17.check similarity index 100% rename from tests/run/erased-17.check rename to tests/run-custom-args/erased/erased-17.check diff --git a/tests/run/erased-17.scala b/tests/run-custom-args/erased/erased-17.scala similarity index 100% rename from tests/run/erased-17.scala rename to tests/run-custom-args/erased/erased-17.scala diff --git a/tests/run/erased-18.check b/tests/run-custom-args/erased/erased-18.check similarity index 100% rename from tests/run/erased-18.check rename to tests/run-custom-args/erased/erased-18.check diff --git a/tests/run/erased-18.scala b/tests/run-custom-args/erased/erased-18.scala similarity index 100% rename from tests/run/erased-18.scala rename to tests/run-custom-args/erased/erased-18.scala diff --git a/tests/run/erased-19.check b/tests/run-custom-args/erased/erased-19.check similarity index 100% rename from tests/run/erased-19.check rename to tests/run-custom-args/erased/erased-19.check diff --git a/tests/run/erased-19.scala b/tests/run-custom-args/erased/erased-19.scala similarity index 100% rename from tests/run/erased-19.scala rename to tests/run-custom-args/erased/erased-19.scala diff --git a/tests/run/erased-2.check b/tests/run-custom-args/erased/erased-2.check similarity index 100% rename from tests/run/erased-2.check rename to tests/run-custom-args/erased/erased-2.check diff --git a/tests/run/erased-2.scala b/tests/run-custom-args/erased/erased-2.scala similarity index 100% rename from tests/run/erased-2.scala rename to tests/run-custom-args/erased/erased-2.scala diff --git a/tests/run/erased-20.check b/tests/run-custom-args/erased/erased-20.check similarity index 100% rename from tests/run/erased-20.check rename to tests/run-custom-args/erased/erased-20.check diff --git a/tests/run/erased-20.scala b/tests/run-custom-args/erased/erased-20.scala similarity index 100% rename from tests/run/erased-20.scala rename to tests/run-custom-args/erased/erased-20.scala diff --git a/tests/run/erased-21.check b/tests/run-custom-args/erased/erased-21.check similarity index 100% rename from tests/run/erased-21.check rename to tests/run-custom-args/erased/erased-21.check diff --git a/tests/run/erased-21.scala b/tests/run-custom-args/erased/erased-21.scala similarity index 100% rename from tests/run/erased-21.scala rename to tests/run-custom-args/erased/erased-21.scala diff --git a/tests/run/erased-22.check b/tests/run-custom-args/erased/erased-22.check similarity index 100% rename from tests/run/erased-22.check rename to tests/run-custom-args/erased/erased-22.check diff --git a/tests/run/erased-22.scala b/tests/run-custom-args/erased/erased-22.scala similarity index 100% rename from tests/run/erased-22.scala rename to tests/run-custom-args/erased/erased-22.scala diff --git a/tests/run/erased-23.check b/tests/run-custom-args/erased/erased-23.check similarity index 100% rename from tests/run/erased-23.check rename to tests/run-custom-args/erased/erased-23.check diff --git a/tests/run/erased-23.scala b/tests/run-custom-args/erased/erased-23.scala similarity index 100% rename from tests/run/erased-23.scala rename to tests/run-custom-args/erased/erased-23.scala diff --git a/tests/run/erased-25.check b/tests/run-custom-args/erased/erased-25.check similarity index 100% rename from tests/run/erased-25.check rename to tests/run-custom-args/erased/erased-25.check diff --git a/tests/run/erased-25.scala b/tests/run-custom-args/erased/erased-25.scala similarity index 100% rename from tests/run/erased-25.scala rename to tests/run-custom-args/erased/erased-25.scala diff --git a/tests/run/erased-26.check b/tests/run-custom-args/erased/erased-26.check similarity index 100% rename from tests/run/erased-26.check rename to tests/run-custom-args/erased/erased-26.check diff --git a/tests/run/erased-26.scala b/tests/run-custom-args/erased/erased-26.scala similarity index 100% rename from tests/run/erased-26.scala rename to tests/run-custom-args/erased/erased-26.scala diff --git a/tests/run/erased-27.check b/tests/run-custom-args/erased/erased-27.check similarity index 100% rename from tests/run/erased-27.check rename to tests/run-custom-args/erased/erased-27.check diff --git a/tests/run/erased-27.scala b/tests/run-custom-args/erased/erased-27.scala similarity index 100% rename from tests/run/erased-27.scala rename to tests/run-custom-args/erased/erased-27.scala diff --git a/tests/run/erased-28.check b/tests/run-custom-args/erased/erased-28.check similarity index 100% rename from tests/run/erased-28.check rename to tests/run-custom-args/erased/erased-28.check diff --git a/tests/run/erased-28.scala b/tests/run-custom-args/erased/erased-28.scala similarity index 100% rename from tests/run/erased-28.scala rename to tests/run-custom-args/erased/erased-28.scala diff --git a/tests/run/erased-3.check b/tests/run-custom-args/erased/erased-3.check similarity index 100% rename from tests/run/erased-3.check rename to tests/run-custom-args/erased/erased-3.check diff --git a/tests/run/erased-3.scala b/tests/run-custom-args/erased/erased-3.scala similarity index 100% rename from tests/run/erased-3.scala rename to tests/run-custom-args/erased/erased-3.scala diff --git a/tests/run/erased-4.check b/tests/run-custom-args/erased/erased-4.check similarity index 100% rename from tests/run/erased-4.check rename to tests/run-custom-args/erased/erased-4.check diff --git a/tests/run/erased-4.scala b/tests/run-custom-args/erased/erased-4.scala similarity index 100% rename from tests/run/erased-4.scala rename to tests/run-custom-args/erased/erased-4.scala diff --git a/tests/run/erased-5.check b/tests/run-custom-args/erased/erased-5.check similarity index 100% rename from tests/run/erased-5.check rename to tests/run-custom-args/erased/erased-5.check diff --git a/tests/run/erased-5.scala b/tests/run-custom-args/erased/erased-5.scala similarity index 100% rename from tests/run/erased-5.scala rename to tests/run-custom-args/erased/erased-5.scala diff --git a/tests/run/erased-6.check b/tests/run-custom-args/erased/erased-6.check similarity index 100% rename from tests/run/erased-6.check rename to tests/run-custom-args/erased/erased-6.check diff --git a/tests/run/erased-6.scala b/tests/run-custom-args/erased/erased-6.scala similarity index 100% rename from tests/run/erased-6.scala rename to tests/run-custom-args/erased/erased-6.scala diff --git a/tests/run/erased-7.check b/tests/run-custom-args/erased/erased-7.check similarity index 100% rename from tests/run/erased-7.check rename to tests/run-custom-args/erased/erased-7.check diff --git a/tests/run/erased-7.scala b/tests/run-custom-args/erased/erased-7.scala similarity index 100% rename from tests/run/erased-7.scala rename to tests/run-custom-args/erased/erased-7.scala diff --git a/tests/run/erased-8.check b/tests/run-custom-args/erased/erased-8.check similarity index 100% rename from tests/run/erased-8.check rename to tests/run-custom-args/erased/erased-8.check diff --git a/tests/run/erased-8.scala b/tests/run-custom-args/erased/erased-8.scala similarity index 100% rename from tests/run/erased-8.scala rename to tests/run-custom-args/erased/erased-8.scala diff --git a/tests/run/erased-9.check b/tests/run-custom-args/erased/erased-9.check similarity index 100% rename from tests/run/erased-9.check rename to tests/run-custom-args/erased/erased-9.check diff --git a/tests/run/erased-9.scala b/tests/run-custom-args/erased/erased-9.scala similarity index 100% rename from tests/run/erased-9.scala rename to tests/run-custom-args/erased/erased-9.scala diff --git a/tests/run/erased-frameless.check b/tests/run-custom-args/erased/erased-frameless.check similarity index 100% rename from tests/run/erased-frameless.check rename to tests/run-custom-args/erased/erased-frameless.check diff --git a/tests/run/erased-frameless.scala b/tests/run-custom-args/erased/erased-frameless.scala similarity index 100% rename from tests/run/erased-frameless.scala rename to tests/run-custom-args/erased/erased-frameless.scala diff --git a/tests/run/erased-machine-state.check b/tests/run-custom-args/erased/erased-machine-state.check similarity index 100% rename from tests/run/erased-machine-state.check rename to tests/run-custom-args/erased/erased-machine-state.check diff --git a/tests/run/erased-machine-state.scala b/tests/run-custom-args/erased/erased-machine-state.scala similarity index 100% rename from tests/run/erased-machine-state.scala rename to tests/run-custom-args/erased/erased-machine-state.scala diff --git a/tests/run/erased-poly-ref.check b/tests/run-custom-args/erased/erased-poly-ref.check similarity index 100% rename from tests/run/erased-poly-ref.check rename to tests/run-custom-args/erased/erased-poly-ref.check diff --git a/tests/run/erased-poly-ref.scala b/tests/run-custom-args/erased/erased-poly-ref.scala similarity index 100% rename from tests/run/erased-poly-ref.scala rename to tests/run-custom-args/erased/erased-poly-ref.scala diff --git a/tests/run/erased-select-prefix.check b/tests/run-custom-args/erased/erased-select-prefix.check similarity index 100% rename from tests/run/erased-select-prefix.check rename to tests/run-custom-args/erased/erased-select-prefix.check diff --git a/tests/run/erased-select-prefix.scala b/tests/run-custom-args/erased/erased-select-prefix.scala similarity index 100% rename from tests/run/erased-select-prefix.scala rename to tests/run-custom-args/erased/erased-select-prefix.scala diff --git a/tests/run/erased-value-class.check b/tests/run-custom-args/erased/erased-value-class.check similarity index 100% rename from tests/run/erased-value-class.check rename to tests/run-custom-args/erased/erased-value-class.check diff --git a/tests/run/erased-value-class.scala b/tests/run-custom-args/erased/erased-value-class.scala similarity index 100% rename from tests/run/erased-value-class.scala rename to tests/run-custom-args/erased/erased-value-class.scala diff --git a/tests/generic-java-signatures/erased.check b/tests/run-custom-args/erased/generic-java-signatures-erased.check similarity index 100% rename from tests/generic-java-signatures/erased.check rename to tests/run-custom-args/erased/generic-java-signatures-erased.check diff --git a/tests/generic-java-signatures/erased.scala b/tests/run-custom-args/erased/generic-java-signatures-erased.scala similarity index 100% rename from tests/generic-java-signatures/erased.scala rename to tests/run-custom-args/erased/generic-java-signatures-erased.scala diff --git a/tests/run/generic-tuples.scala b/tests/run-custom-args/generic-tuples.scala similarity index 100% rename from tests/run/generic-tuples.scala rename to tests/run-custom-args/generic-tuples.scala diff --git a/tests/run/lambda-serialization-others.scala b/tests/run-custom-args/lambda-serialization-others.scala similarity index 100% rename from tests/run/lambda-serialization-others.scala rename to tests/run-custom-args/lambda-serialization-others.scala diff --git a/tests/run/phantom-OnHList.scala b/tests/run-custom-args/phantom-OnHList.scala similarity index 100% rename from tests/run/phantom-OnHList.scala rename to tests/run-custom-args/phantom-OnHList.scala diff --git a/tests/run-macros/erased-arg-macro/1.scala b/tests/run-custom-args/run-macros-erased/macro-erased/1.scala similarity index 100% rename from tests/run-macros/erased-arg-macro/1.scala rename to tests/run-custom-args/run-macros-erased/macro-erased/1.scala diff --git a/tests/run-macros/erased-arg-macro/2.scala b/tests/run-custom-args/run-macros-erased/macro-erased/2.scala similarity index 100% rename from tests/run-macros/erased-arg-macro/2.scala rename to tests/run-custom-args/run-macros-erased/macro-erased/2.scala diff --git a/tests/run/toplevel-stale/A_1.scala b/tests/run-custom-args/toplevel-stale/A_1.scala similarity index 100% rename from tests/run/toplevel-stale/A_1.scala rename to tests/run-custom-args/toplevel-stale/A_1.scala diff --git a/tests/run/toplevel-stale/B_2.scala b/tests/run-custom-args/toplevel-stale/B_2.scala similarity index 100% rename from tests/run/toplevel-stale/B_2.scala rename to tests/run-custom-args/toplevel-stale/B_2.scala diff --git a/tests/run/toplevel-stale/Test_3.scala b/tests/run-custom-args/toplevel-stale/Test_3.scala similarity index 100% rename from tests/run/toplevel-stale/Test_3.scala rename to tests/run-custom-args/toplevel-stale/Test_3.scala diff --git a/tests/run/typeclass-derivation2.scala b/tests/run-custom-args/typeclass-derivation2.scala similarity index 100% rename from tests/run/typeclass-derivation2.scala rename to tests/run-custom-args/typeclass-derivation2.scala diff --git a/tests/run/typeclass-derivation2c.scala b/tests/run-custom-args/typeclass-derivation2c.scala similarity index 100% rename from tests/run/typeclass-derivation2c.scala rename to tests/run-custom-args/typeclass-derivation2c.scala diff --git a/tests/run/typelevel-defaultValue.scala b/tests/run-custom-args/typelevel-defaultValue.scala similarity index 100% rename from tests/run/typelevel-defaultValue.scala rename to tests/run-custom-args/typelevel-defaultValue.scala