summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/reflect/internal/Definitions.scala30
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Parsers.scala75
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Scanners.scala38
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala2
-rw-r--r--src/library/scala/annotation/meta/languageFeature.scala13
-rw-r--r--test/files/neg/macro-argtype-mismatch.flags2
-rw-r--r--test/files/neg/macro-basic-mamdmi.flags2
-rw-r--r--test/files/neg/macro-cyclic.flags2
-rw-r--r--test/files/neg/macro-invalidimpl-a.flags2
-rw-r--r--test/files/neg/macro-invalidimpl-b.flags2
-rw-r--r--test/files/neg/macro-invalidimpl-c.flags2
-rw-r--r--test/files/neg/macro-invalidimpl-d.flags2
-rw-r--r--test/files/neg/macro-invalidimpl-e.flags2
-rw-r--r--test/files/neg/macro-invalidimpl-f.flags2
-rw-r--r--test/files/neg/macro-invalidimpl-g.flags2
-rw-r--r--test/files/neg/macro-invalidimpl-h.flags2
-rw-r--r--test/files/neg/macro-invalidret-nontree.flags2
-rw-r--r--test/files/neg/macro-invalidret-nonuniversetree.flags2
-rw-r--r--test/files/neg/macro-invalidshape-a.flags2
-rw-r--r--test/files/neg/macro-invalidshape-b.flags2
-rw-r--r--test/files/neg/macro-invalidshape-c.flags2
-rw-r--r--test/files/neg/macro-invalidshape-d.flags2
-rw-r--r--test/files/neg/macro-invalidsig-context-bounds.flags2
-rw-r--r--test/files/neg/macro-invalidsig-ctx-badargc.flags2
-rw-r--r--test/files/neg/macro-invalidsig-ctx-badtype.flags2
-rw-r--r--test/files/neg/macro-invalidsig-ctx-badvarargs.flags2
-rw-r--r--test/files/neg/macro-invalidsig-ctx-noctx.flags2
-rw-r--r--test/files/neg/macro-invalidsig-implicit-params.flags2
-rw-r--r--test/files/neg/macro-invalidsig-params-badargc.flags2
-rw-r--r--test/files/neg/macro-invalidsig-params-badtype.flags2
-rw-r--r--test/files/neg/macro-invalidsig-params-badvarargs.flags2
-rw-r--r--test/files/neg/macro-invalidsig-params-namemismatch.flags2
-rw-r--r--test/files/neg/macro-invalidsig-tparams-badtype.flags2
-rw-r--r--test/files/neg/macro-invalidsig-tparams-bounds-a.flags2
-rw-r--r--test/files/neg/macro-invalidsig-tparams-bounds-b.flags2
-rw-r--r--test/files/neg/macro-invalidsig-tparams-notparams-a.flags2
-rw-r--r--test/files/neg/macro-invalidsig-tparams-notparams-b.flags2
-rw-r--r--test/files/neg/macro-invalidsig-tparams-notparams-c.flags2
-rw-r--r--test/files/neg/macro-invalidusage-badargs.flags2
-rw-r--r--test/files/neg/macro-invalidusage-badbounds.flags2
-rw-r--r--test/files/neg/macro-invalidusage-badtargs.flags2
-rw-r--r--test/files/neg/macro-invalidusage-methodvaluesyntax.flags2
-rw-r--r--test/files/neg/macro-keyword.flags2
-rw-r--r--test/files/neg/macro-noexpand.flags2
-rw-r--r--test/files/neg/macro-noncompilertree.flags2
-rw-r--r--test/files/neg/macro-nontree.flags2
-rw-r--r--test/files/neg/macro-nontypeablebody.flags2
-rw-r--r--test/files/neg/macro-override-macro-overrides-abstract-method-a.flags2
-rw-r--r--test/files/neg/macro-override-macro-overrides-abstract-method-b.flags2
-rw-r--r--test/files/neg/macro-override-method-overrides-macro.flags2
-rw-r--r--test/files/pos/hkarray.flags2
-rw-r--r--test/files/pos/t1439.flags2
-rw-r--r--test/files/run/macro-abort-fresh.flags2
-rw-r--r--test/files/run/macro-basic-ma-md-mi.flags2
-rw-r--r--test/files/run/macro-basic-ma-mdmi.flags2
-rw-r--r--test/files/run/macro-basic-mamd-mi.flags2
-rw-r--r--test/files/run/macro-bodyexpandstoimpl.flags2
-rw-r--r--test/files/run/macro-declared-in-annotation.flags2
-rw-r--r--test/files/run/macro-declared-in-anonymous.flags2
-rw-r--r--test/files/run/macro-declared-in-block.flags2
-rw-r--r--test/files/run/macro-declared-in-class-class.flags2
-rw-r--r--test/files/run/macro-declared-in-class-object.flags2
-rw-r--r--test/files/run/macro-declared-in-class.flags2
-rw-r--r--test/files/run/macro-declared-in-default-param.flags2
-rw-r--r--test/files/run/macro-declared-in-implicit-class.flags2
-rw-r--r--test/files/run/macro-declared-in-method.flags2
-rw-r--r--test/files/run/macro-declared-in-object-class.flags2
-rw-r--r--test/files/run/macro-declared-in-object-object.flags2
-rw-r--r--test/files/run/macro-declared-in-object.flags2
-rw-r--r--test/files/run/macro-declared-in-package-object.flags2
-rw-r--r--test/files/run/macro-declared-in-refinement.flags2
-rw-r--r--test/files/run/macro-declared-in-trait.flags2
-rw-r--r--test/files/run/macro-def-infer-return-type-a.flags2
-rw-r--r--test/files/run/macro-def-infer-return-type-b.flags2
-rw-r--r--test/files/run/macro-def-infer-return-type-c.flags2
-rw-r--r--test/files/run/macro-def-path-dependent-a.flags2
-rw-r--r--test/files/run/macro-def-path-dependent-b.flags2
-rw-r--r--test/files/run/macro-def-path-dependent-c.flags2
-rw-r--r--test/files/run/macro-def-path-dependent-d.flags2
-rw-r--r--test/files/run/macro-expand-implicit-macro-has-implicit.flags2
-rw-r--r--test/files/run/macro-expand-implicit-macro-is-implicit.flags2
-rw-r--r--test/files/run/macro-expand-implicit-macro-is-val.flags2
-rw-r--r--test/files/run/macro-expand-implicit-macro-is-view.flags2
-rw-r--r--test/files/run/macro-expand-multiple-arglists.flags2
-rw-r--r--test/files/run/macro-expand-nullary-generic.flags2
-rw-r--r--test/files/run/macro-expand-nullary-nongeneric.flags2
-rw-r--r--test/files/run/macro-expand-overload.flags2
-rw-r--r--test/files/run/macro-expand-override.flags2
-rw-r--r--test/files/run/macro-expand-recursive.flags2
-rw-r--r--test/files/run/macro-expand-tparams-bounds-a.flags2
-rw-r--r--test/files/run/macro-expand-tparams-bounds-b.flags2
-rw-r--r--test/files/run/macro-expand-tparams-explicit.flags2
-rw-r--r--test/files/run/macro-expand-tparams-implicit.flags2
-rw-r--r--test/files/run/macro-expand-tparams-only-in-impl.flags2
-rw-r--r--test/files/run/macro-expand-tparams-optional.flags2
-rw-r--r--test/files/run/macro-expand-tparams-prefix-a.flags2
-rw-r--r--test/files/run/macro-expand-tparams-prefix-b.flags2
-rw-r--r--test/files/run/macro-expand-tparams-prefix-c1.flags2
-rw-r--r--test/files/run/macro-expand-tparams-prefix-c2.flags2
-rw-r--r--test/files/run/macro-expand-tparams-prefix-d1.flags2
-rw-r--r--test/files/run/macro-expand-varargs-explicit-over-nonvarargs-bad.flags2
-rw-r--r--test/files/run/macro-expand-varargs-explicit-over-nonvarargs-good.flags2
-rw-r--r--test/files/run/macro-expand-varargs-explicit-over-varargs.flags2
-rw-r--r--test/files/run/macro-expand-varargs-implicit-over-nonvarargs.flags2
-rw-r--r--test/files/run/macro-expand-varargs-implicit-over-varargs.flags2
-rw-r--r--test/files/run/macro-impl-default-params.flags2
-rw-r--r--test/files/run/macro-impl-rename-context.flags2
-rw-r--r--test/files/run/macro-invalidret-doesnt-conform-to-def-rettype.flags2
-rw-r--r--test/files/run/macro-invalidret-doesnt-conform-to-impl-rettype.flags2
-rw-r--r--test/files/run/macro-invalidret-nontypeable.flags2
-rw-r--r--test/files/run/macro-invalidusage-badret.flags2
-rw-r--r--test/files/run/macro-invalidusage-partialapplication.flags2
-rw-r--r--test/files/run/macro-openmacros.flags2
-rw-r--r--test/files/run/macro-quasiinvalidbody-c.flags2
-rw-r--r--test/files/run/macro-range.flags2
-rw-r--r--test/files/run/macro-reflective-ma-normal-mdmi.flags2
-rw-r--r--test/files/run/macro-reify-basic.flags2
-rw-r--r--test/files/run/macro-reify-eval-eval.flags2
-rw-r--r--test/files/run/macro-reify-eval-outside-reify.flags2
-rw-r--r--test/files/run/macro-reify-freevars.flags2
-rw-r--r--test/files/run/macro-reify-nested-a.flags2
-rw-r--r--test/files/run/macro-reify-nested-b.flags2
-rw-r--r--test/files/run/macro-reify-ref-to-packageless.flags2
-rw-r--r--test/files/run/macro-reify-tagful-a.flags2
-rw-r--r--test/files/run/macro-reify-tagless-a.flags2
-rw-r--r--test/files/run/macro-reify-unreify.flags2
-rw-r--r--test/files/run/macro-reify-value-outside-reify.flags2
-rw-r--r--test/files/run/macro-rettype-mismatch.flags2
-rw-r--r--test/files/run/macro-settings.flags2
-rw-r--r--test/files/run/macro-sip19-revised.flags2
-rw-r--r--test/files/run/macro-sip19.flags2
-rw-r--r--test/files/run/macro-typecheck-implicitsdisabled.flags2
-rw-r--r--test/files/run/macro-typecheck-macrosdisabled.flags2
-rw-r--r--test/files/run/macro-undetparams-consfromsls.flags2
-rw-r--r--test/files/run/macro-undetparams-implicitval.flags2
-rw-r--r--test/files/run/macro-undetparams-macroitself.flags2
136 files changed, 200 insertions, 220 deletions
diff --git a/src/compiler/scala/reflect/internal/Definitions.scala b/src/compiler/scala/reflect/internal/Definitions.scala
index 6689a9dbb8..72fca5da12 100644
--- a/src/compiler/scala/reflect/internal/Definitions.scala
+++ b/src/compiler/scala/reflect/internal/Definitions.scala
@@ -924,17 +924,18 @@ trait Definitions extends reflect.api.StandardDefinitions {
lazy val ClassTargetClass = getMetaAnnotation("companionClass")
lazy val ObjectTargetClass = getMetaAnnotation("companionObject")
lazy val MethodTargetClass = getMetaAnnotation("companionMethod") // TODO: module, moduleClass? package, packageObject?
- lazy val LanguageFeatureClass = getMetaAnnotation("languageFeature")
+ lazy val LanguageFeatureAnnot = getMetaAnnotation("languageFeature")
// Language features
lazy val languageFeatureModule = getRequiredModule("scala.languageFeature")
- lazy val MacrosFeature = getRequiredClass("scala.languageFeature.experimental.macros")
- lazy val DynamicsFeature = getRequiredClass("scala.languageFeature.dynamics")
- lazy val PostfixOpsFeature = getRequiredClass("scala.languageFeature.postfixOps")
- lazy val ReflectiveCallsFeature = getRequiredClass("scala.languageFeature.reflectiveCalls")
- lazy val ImplicitConversionsFeature = getRequiredClass("scala.languageFeature.implicitConversions")
- lazy val HigherKindsFeature = getRequiredClass("scala.languageFeature.higherKinds")
- lazy val ExistentialsFeature = getRequiredClass("scala.languageFeature.existentials")
+ lazy val experimentalModule = getMember(languageFeatureModule, newTermName("experimental"))
+ lazy val MacrosFeature = getLanguageFeature("macros", experimentalModule)
+ lazy val DynamicsFeature = getLanguageFeature("dynamics")
+ lazy val PostfixOpsFeature = getLanguageFeature("postfixOps")
+ lazy val ReflectiveCallsFeature = getLanguageFeature("reflectiveCalls")
+ lazy val ImplicitConversionsFeature = getLanguageFeature("implicitConversions")
+ lazy val HigherKindsFeature = getLanguageFeature("higherKinds")
+ lazy val ExistentialsFeature = getLanguageFeature("existentials")
private def getMetaAnnotation(name: String) = getRequiredClass("scala.annotation.meta." + name)
def isMetaAnnotation(sym: Symbol): Boolean = metaAnnotations(sym) || (
@@ -986,6 +987,9 @@ trait Definitions extends reflect.api.StandardDefinitions {
try getModule(fullname.toTermName)
catch { case _: MissingRequirementError => NoSymbol }
+ def getLanguageFeature(name: String, owner: Symbol = languageFeatureModule) =
+ getMember(owner, newTypeName(name))
+
def termMember(owner: Symbol, name: String): Symbol = owner.info.member(newTermName(name))
def typeMember(owner: Symbol, name: String): Symbol = owner.info.member(newTypeName(name))
@@ -1005,7 +1009,13 @@ trait Definitions extends reflect.api.StandardDefinitions {
def getMember(owner: Symbol, name: Name): Symbol = {
getMemberIfDefined(owner, name) orElse {
- throw new FatalError(owner + " does not have a member " + name)
+ if (phase.flatClasses && name.isTypeName && !owner.isPackageObjectOrClass) {
+ val pkg = owner.owner
+ val flatname = nme.flattenedName(owner.name, name)
+ getMember(pkg, flatname)
+ } else {
+ throw new FatalError(owner + " does not have a member " + name)
+ }
}
}
def getMemberIfDefined(owner: Symbol, name: Name): Symbol =
@@ -1022,7 +1032,7 @@ trait Definitions extends reflect.api.StandardDefinitions {
}
def getDeclIfDefined(owner: Symbol, name: Name): Symbol =
owner.info.nonPrivateDecl(name)
-
+
def packageExists(packageName: String): Boolean =
getModuleIfDefined(packageName).isPackage
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
index ef11427677..65225b185b 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
@@ -1773,21 +1773,7 @@ self =>
*/
def pattern2(): Tree = {
val nameOffset = in.offset
- def warnIfMacro(tree: Tree): Unit = {
- def check(name: Name): Unit = if (name.toString == nme.MACROkw.toString)
- warning(nameOffset, "in future versions of Scala \"macro\" will be a keyword. consider using a different name.")
- tree match {
- case _: BackQuotedIdent =>
- ;
- case Ident(name) =>
- check(name)
- case _ =>
- ;
- }
- }
-
val p = pattern3()
- warnIfMacro(p)
if (in.token != AT) p
else p match {
@@ -2463,8 +2449,6 @@ self =>
val nameOffset = in.offset
val isBackquoted = in.token == BACKQUOTED_IDENT
val name = ident()
- if (name.toString == nme.MACROkw.toString && !isBackquoted)
- warning(nameOffset, "in future versions of Scala \"macro\" will be a keyword. consider using a different name.")
funDefRest(start, nameOffset, mods, name)
}
}
@@ -2480,7 +2464,7 @@ self =>
val vparamss = paramClauses(name, contextBoundBuf.toList, false)
newLineOptWhenFollowedBy(LBRACE)
var restype = fromWithinReturnType(typedOpt())
- val rhs =
+ val rhs =
if (isStatSep || in.token == RBRACE) {
if (restype.isEmpty) restype = scalaUnitConstr
newmods |= Flags.DEFERRED
@@ -2489,11 +2473,15 @@ self =>
restype = scalaUnitConstr
blockExpr()
} else {
- accept(EQUALS)
- if (settings.Xmacros.value && in.token == MACRO || // [Martin] Xmacros can be retired now
- in.token == IDENTIFIER && in.name == nme.MACROkw) {
- in.nextToken()
- newmods |= Flags.MACRO
+ if (in.token == EQUALS) {
+ in.nextTokenAllow(nme.MACROkw)
+ if (settings.Xmacros.value && in.token == MACRO || // [Martin] Xmacros can be retired now
+ in.token == IDENTIFIER && in.name == nme.MACROkw) {
+ in.nextToken()
+ newmods |= Flags.MACRO
+ }
+ } else {
+ accept(EQUALS)
}
expr()
}
@@ -2556,8 +2544,6 @@ self =>
val nameOffset = in.offset
val isBackquoted = in.token == BACKQUOTED_IDENT
val name = identForType()
- if (name.toString == nme.MACROkw.toString && !isBackquoted)
- warning(nameOffset, "in future versions of Scala \"macro\" will be a keyword. consider using a different name.")
// @M! a type alias as well as an abstract type may declare type parameters
val tparams = typeParamClauseOpt(name, null)
in.token match {
@@ -2617,9 +2603,6 @@ self =>
val nameOffset = in.offset
val isBackquoted = in.token == BACKQUOTED_IDENT
val name = identForType()
- if (name.toString == nme.MACROkw.toString && !isBackquoted)
- warning(nameOffset, "in future versions of Scala \"macro\" will be a keyword. consider using a different name.")
-
atPos(start, if (name == tpnme.ERROR) start else nameOffset) {
savingClassContextBounds {
val contextBoundBuf = new ListBuffer[Tree]
@@ -2661,8 +2644,6 @@ self =>
val nameOffset = in.offset
val isBackquoted = in.token == BACKQUOTED_IDENT
val name = ident()
- if (name.toString == nme.MACROkw.toString && !isBackquoted)
- warning(nameOffset, "in future versions of Scala \"macro\" will be a keyword. consider using a different name.")
val tstart = in.offset
atPos(start, if (name == nme.ERROR) start else nameOffset) {
val mods1 = if (in.token == SUBTYPE) mods | Flags.DEFERRED else mods
@@ -2841,24 +2822,7 @@ self =>
*/
def packaging(start: Int): Tree = {
val nameOffset = in.offset
- def warnIfMacro(tree: Tree): Unit = {
- def check(name: Name): Unit = if (name.toString == nme.MACROkw.toString)
- warning(nameOffset, "in future versions of Scala \"macro\" will be a keyword. consider using a different name.")
- tree match {
- case _: BackQuotedIdent =>
- ;
- case Ident(name) =>
- check(name)
- case Select(qual, name) =>
- warnIfMacro(qual)
- check(name)
- case _ =>
- ;
- }
- }
-
val pkg = pkgQualId()
- warnIfMacro(pkg)
val stats = inBracesOrNil(topStatSeq())
makePackaging(start, pkg, stats)
}
@@ -3061,27 +3025,8 @@ self =>
}
} else {
val nameOffset = in.offset
- def warnIfMacro(tree: Tree): Unit = {
- def check(name: Name): Unit = if (name.toString == nme.MACROkw.toString)
- warning(nameOffset, "in future versions of Scala \"macro\" will be a keyword. consider using a different name.")
- tree match {
- // [Eugene] pkgQualId never returns BackQuotedIdents
- // this means that we'll get spurious warnings even if we wrap macro package name in backquotes
- case _: BackQuotedIdent =>
- ;
- case Ident(name) =>
- check(name)
- case Select(qual, name) =>
- warnIfMacro(qual)
- check(name)
- case _ =>
- ;
- }
- }
-
in.flushDoc
val pkg = pkgQualId()
- warnIfMacro(pkg)
if (in.token == EOF) {
ts += makePackaging(start, pkg, List())
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
index c75e806b2a..105db805d8 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
@@ -113,20 +113,19 @@ trait Scanners extends ScannersCommon {
}
/** Clear buffer and set name and token */
- private def finishNamed() {
+ private def finishNamed(idtoken: Int = IDENTIFIER) {
name = newTermName(cbuf.toString)
- token = name2token(name)
- cbuf.clear()
- }
-
- /** Convert name to token */
- private def name2token(name: Name) = {
+ token = idtoken
val idx = name.start - kwOffset
if (idx >= 0 && idx < kwArray.length) {
- val token = kwArray(idx)
- if (token == IDENTIFIER) deprecationWarning(name+" is now a reserved word; usage as an identifier is deprecated")
- token
- } else IDENTIFIER
+ token = kwArray(idx)
+ if (token == IDENTIFIER) {
+ if (idtoken == IDENTIFIER && allowIdent != name)
+ deprecationWarning(name+" is now a reserved word; usage as an identifier is deprecated")
+ token = idtoken
+ }
+ }
+ cbuf.clear()
}
/** Clear buffer and set string */
@@ -200,6 +199,20 @@ trait Scanners extends ScannersCommon {
off
}
+ /** Allow an otherwise deprecated ident here */
+ private var allowIdent: Name = nme.EMPTY
+
+ /** Get next token, and allow the otherwise deprecated ident `name` */
+ def nextTokenAllow(name: Name) = {
+ val prev = allowIdent
+ allowIdent = name
+ try {
+ nextToken()
+ } finally {
+ allowIdent = prev
+ }
+ }
+
/** Produce next token, filling TokenData fields of Scanner.
*/
def nextToken() {
@@ -572,9 +585,8 @@ trait Scanners extends ScannersCommon {
getLitChars('`')
if (ch == '`') {
nextChar()
- finishNamed()
+ finishNamed(BACKQUOTED_IDENT)
if (name.length == 0) syntaxError("empty quoted identifier")
- token = BACKQUOTED_IDENT
}
else syntaxError("unclosed quoted identifier")
}
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index b1cbc53044..1425cd4755 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -743,7 +743,7 @@ trait Typers extends Modes with Adaptations with PatMatVirtualiser {
def hasOption = settings.language.value contains featureName
if (!hasImport && !hasOption) {
val Some(AnnotationInfo(_, List(Literal(Constant(featureDesc: String)), Literal(Constant(required: Boolean))), _)) =
- featureTrait getAnnotation LanguageFeatureClass
+ featureTrait getAnnotation LanguageFeatureAnnot
val req = if (required) "needs to" else "should"
var raw = featureDesc + " " + req + " be enabled\n" +
"by making the implicit value language." + featureName + " visible."
diff --git a/src/library/scala/annotation/meta/languageFeature.scala b/src/library/scala/annotation/meta/languageFeature.scala
new file mode 100644
index 0000000000..23acc01b51
--- /dev/null
+++ b/src/library/scala/annotation/meta/languageFeature.scala
@@ -0,0 +1,13 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2011, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+package scala.annotation.meta
+
+/**
+ * An annotation giving particulars for a language feature in object `scala.language`.
+ */
+final class languageFeature(feature: String, enableRequired: Boolean) extends annotation.StaticAnnotation
diff --git a/test/files/neg/macro-argtype-mismatch.flags b/test/files/neg/macro-argtype-mismatch.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-argtype-mismatch.flags
+++ b/test/files/neg/macro-argtype-mismatch.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-basic-mamdmi.flags b/test/files/neg/macro-basic-mamdmi.flags
index 06a7b31f11..5e5dd6ce79 100644
--- a/test/files/neg/macro-basic-mamdmi.flags
+++ b/test/files/neg/macro-basic-mamdmi.flags
@@ -1 +1 @@
--Xmacros
+-language:experimental.macros
diff --git a/test/files/neg/macro-cyclic.flags b/test/files/neg/macro-cyclic.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-cyclic.flags
+++ b/test/files/neg/macro-cyclic.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidimpl-a.flags b/test/files/neg/macro-invalidimpl-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidimpl-a.flags
+++ b/test/files/neg/macro-invalidimpl-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidimpl-b.flags b/test/files/neg/macro-invalidimpl-b.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidimpl-b.flags
+++ b/test/files/neg/macro-invalidimpl-b.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidimpl-c.flags b/test/files/neg/macro-invalidimpl-c.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidimpl-c.flags
+++ b/test/files/neg/macro-invalidimpl-c.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidimpl-d.flags b/test/files/neg/macro-invalidimpl-d.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidimpl-d.flags
+++ b/test/files/neg/macro-invalidimpl-d.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidimpl-e.flags b/test/files/neg/macro-invalidimpl-e.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidimpl-e.flags
+++ b/test/files/neg/macro-invalidimpl-e.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidimpl-f.flags b/test/files/neg/macro-invalidimpl-f.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidimpl-f.flags
+++ b/test/files/neg/macro-invalidimpl-f.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidimpl-g.flags b/test/files/neg/macro-invalidimpl-g.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidimpl-g.flags
+++ b/test/files/neg/macro-invalidimpl-g.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidimpl-h.flags b/test/files/neg/macro-invalidimpl-h.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidimpl-h.flags
+++ b/test/files/neg/macro-invalidimpl-h.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidret-nontree.flags b/test/files/neg/macro-invalidret-nontree.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidret-nontree.flags
+++ b/test/files/neg/macro-invalidret-nontree.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidret-nonuniversetree.flags b/test/files/neg/macro-invalidret-nonuniversetree.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidret-nonuniversetree.flags
+++ b/test/files/neg/macro-invalidret-nonuniversetree.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidshape-a.flags b/test/files/neg/macro-invalidshape-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidshape-a.flags
+++ b/test/files/neg/macro-invalidshape-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidshape-b.flags b/test/files/neg/macro-invalidshape-b.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidshape-b.flags
+++ b/test/files/neg/macro-invalidshape-b.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidshape-c.flags b/test/files/neg/macro-invalidshape-c.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidshape-c.flags
+++ b/test/files/neg/macro-invalidshape-c.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidshape-d.flags b/test/files/neg/macro-invalidshape-d.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidshape-d.flags
+++ b/test/files/neg/macro-invalidshape-d.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-context-bounds.flags b/test/files/neg/macro-invalidsig-context-bounds.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-context-bounds.flags
+++ b/test/files/neg/macro-invalidsig-context-bounds.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-ctx-badargc.flags b/test/files/neg/macro-invalidsig-ctx-badargc.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-ctx-badargc.flags
+++ b/test/files/neg/macro-invalidsig-ctx-badargc.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-ctx-badtype.flags b/test/files/neg/macro-invalidsig-ctx-badtype.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-ctx-badtype.flags
+++ b/test/files/neg/macro-invalidsig-ctx-badtype.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-ctx-badvarargs.flags b/test/files/neg/macro-invalidsig-ctx-badvarargs.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-ctx-badvarargs.flags
+++ b/test/files/neg/macro-invalidsig-ctx-badvarargs.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-ctx-noctx.flags b/test/files/neg/macro-invalidsig-ctx-noctx.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-ctx-noctx.flags
+++ b/test/files/neg/macro-invalidsig-ctx-noctx.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-implicit-params.flags b/test/files/neg/macro-invalidsig-implicit-params.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-implicit-params.flags
+++ b/test/files/neg/macro-invalidsig-implicit-params.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-params-badargc.flags b/test/files/neg/macro-invalidsig-params-badargc.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-params-badargc.flags
+++ b/test/files/neg/macro-invalidsig-params-badargc.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-params-badtype.flags b/test/files/neg/macro-invalidsig-params-badtype.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-params-badtype.flags
+++ b/test/files/neg/macro-invalidsig-params-badtype.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-params-badvarargs.flags b/test/files/neg/macro-invalidsig-params-badvarargs.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-params-badvarargs.flags
+++ b/test/files/neg/macro-invalidsig-params-badvarargs.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-params-namemismatch.flags b/test/files/neg/macro-invalidsig-params-namemismatch.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-params-namemismatch.flags
+++ b/test/files/neg/macro-invalidsig-params-namemismatch.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-tparams-badtype.flags b/test/files/neg/macro-invalidsig-tparams-badtype.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-tparams-badtype.flags
+++ b/test/files/neg/macro-invalidsig-tparams-badtype.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-tparams-bounds-a.flags b/test/files/neg/macro-invalidsig-tparams-bounds-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-tparams-bounds-a.flags
+++ b/test/files/neg/macro-invalidsig-tparams-bounds-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-tparams-bounds-b.flags b/test/files/neg/macro-invalidsig-tparams-bounds-b.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-tparams-bounds-b.flags
+++ b/test/files/neg/macro-invalidsig-tparams-bounds-b.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-tparams-notparams-a.flags b/test/files/neg/macro-invalidsig-tparams-notparams-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-tparams-notparams-a.flags
+++ b/test/files/neg/macro-invalidsig-tparams-notparams-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-tparams-notparams-b.flags b/test/files/neg/macro-invalidsig-tparams-notparams-b.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-tparams-notparams-b.flags
+++ b/test/files/neg/macro-invalidsig-tparams-notparams-b.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidsig-tparams-notparams-c.flags b/test/files/neg/macro-invalidsig-tparams-notparams-c.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidsig-tparams-notparams-c.flags
+++ b/test/files/neg/macro-invalidsig-tparams-notparams-c.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidusage-badargs.flags b/test/files/neg/macro-invalidusage-badargs.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidusage-badargs.flags
+++ b/test/files/neg/macro-invalidusage-badargs.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidusage-badbounds.flags b/test/files/neg/macro-invalidusage-badbounds.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidusage-badbounds.flags
+++ b/test/files/neg/macro-invalidusage-badbounds.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidusage-badtargs.flags b/test/files/neg/macro-invalidusage-badtargs.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidusage-badtargs.flags
+++ b/test/files/neg/macro-invalidusage-badtargs.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-invalidusage-methodvaluesyntax.flags b/test/files/neg/macro-invalidusage-methodvaluesyntax.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-invalidusage-methodvaluesyntax.flags
+++ b/test/files/neg/macro-invalidusage-methodvaluesyntax.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-keyword.flags b/test/files/neg/macro-keyword.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-keyword.flags
+++ b/test/files/neg/macro-keyword.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-noexpand.flags b/test/files/neg/macro-noexpand.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-noexpand.flags
+++ b/test/files/neg/macro-noexpand.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-noncompilertree.flags b/test/files/neg/macro-noncompilertree.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-noncompilertree.flags
+++ b/test/files/neg/macro-noncompilertree.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-nontree.flags b/test/files/neg/macro-nontree.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-nontree.flags
+++ b/test/files/neg/macro-nontree.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-nontypeablebody.flags b/test/files/neg/macro-nontypeablebody.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-nontypeablebody.flags
+++ b/test/files/neg/macro-nontypeablebody.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-override-macro-overrides-abstract-method-a.flags b/test/files/neg/macro-override-macro-overrides-abstract-method-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-override-macro-overrides-abstract-method-a.flags
+++ b/test/files/neg/macro-override-macro-overrides-abstract-method-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-override-macro-overrides-abstract-method-b.flags b/test/files/neg/macro-override-macro-overrides-abstract-method-b.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-override-macro-overrides-abstract-method-b.flags
+++ b/test/files/neg/macro-override-macro-overrides-abstract-method-b.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/neg/macro-override-method-overrides-macro.flags b/test/files/neg/macro-override-method-overrides-macro.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/neg/macro-override-method-overrides-macro.flags
+++ b/test/files/neg/macro-override-method-overrides-macro.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/pos/hkarray.flags b/test/files/pos/hkarray.flags
index e8fb65d50c..e745d8bbe3 100644
--- a/test/files/pos/hkarray.flags
+++ b/test/files/pos/hkarray.flags
@@ -1 +1 @@
--Xfatal-warnings \ No newline at end of file
+-Xfatal-warnings -language:higherKinds \ No newline at end of file
diff --git a/test/files/pos/t1439.flags b/test/files/pos/t1439.flags
index 779916d58f..830f024342 100644
--- a/test/files/pos/t1439.flags
+++ b/test/files/pos/t1439.flags
@@ -1 +1 @@
--unchecked -Xfatal-warnings \ No newline at end of file
+-unchecked -Xfatal-warnings -language:higher-kinds \ No newline at end of file
diff --git a/test/files/run/macro-abort-fresh.flags b/test/files/run/macro-abort-fresh.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-abort-fresh.flags
+++ b/test/files/run/macro-abort-fresh.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-basic-ma-md-mi.flags b/test/files/run/macro-basic-ma-md-mi.flags
index 06a7b31f11..5e5dd6ce79 100644
--- a/test/files/run/macro-basic-ma-md-mi.flags
+++ b/test/files/run/macro-basic-ma-md-mi.flags
@@ -1 +1 @@
--Xmacros
+-language:experimental.macros
diff --git a/test/files/run/macro-basic-ma-mdmi.flags b/test/files/run/macro-basic-ma-mdmi.flags
index 06a7b31f11..5e5dd6ce79 100644
--- a/test/files/run/macro-basic-ma-mdmi.flags
+++ b/test/files/run/macro-basic-ma-mdmi.flags
@@ -1 +1 @@
--Xmacros
+-language:experimental.macros
diff --git a/test/files/run/macro-basic-mamd-mi.flags b/test/files/run/macro-basic-mamd-mi.flags
index 06a7b31f11..5e5dd6ce79 100644
--- a/test/files/run/macro-basic-mamd-mi.flags
+++ b/test/files/run/macro-basic-mamd-mi.flags
@@ -1 +1 @@
--Xmacros
+-language:experimental.macros
diff --git a/test/files/run/macro-bodyexpandstoimpl.flags b/test/files/run/macro-bodyexpandstoimpl.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-bodyexpandstoimpl.flags
+++ b/test/files/run/macro-bodyexpandstoimpl.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-annotation.flags b/test/files/run/macro-declared-in-annotation.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-annotation.flags
+++ b/test/files/run/macro-declared-in-annotation.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-anonymous.flags b/test/files/run/macro-declared-in-anonymous.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-anonymous.flags
+++ b/test/files/run/macro-declared-in-anonymous.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-block.flags b/test/files/run/macro-declared-in-block.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-block.flags
+++ b/test/files/run/macro-declared-in-block.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-class-class.flags b/test/files/run/macro-declared-in-class-class.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-class-class.flags
+++ b/test/files/run/macro-declared-in-class-class.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-class-object.flags b/test/files/run/macro-declared-in-class-object.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-class-object.flags
+++ b/test/files/run/macro-declared-in-class-object.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-class.flags b/test/files/run/macro-declared-in-class.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-class.flags
+++ b/test/files/run/macro-declared-in-class.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-default-param.flags b/test/files/run/macro-declared-in-default-param.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-default-param.flags
+++ b/test/files/run/macro-declared-in-default-param.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-implicit-class.flags b/test/files/run/macro-declared-in-implicit-class.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-implicit-class.flags
+++ b/test/files/run/macro-declared-in-implicit-class.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-method.flags b/test/files/run/macro-declared-in-method.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-method.flags
+++ b/test/files/run/macro-declared-in-method.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-object-class.flags b/test/files/run/macro-declared-in-object-class.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-object-class.flags
+++ b/test/files/run/macro-declared-in-object-class.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-object-object.flags b/test/files/run/macro-declared-in-object-object.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-object-object.flags
+++ b/test/files/run/macro-declared-in-object-object.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-object.flags b/test/files/run/macro-declared-in-object.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-object.flags
+++ b/test/files/run/macro-declared-in-object.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-package-object.flags b/test/files/run/macro-declared-in-package-object.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-package-object.flags
+++ b/test/files/run/macro-declared-in-package-object.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-refinement.flags b/test/files/run/macro-declared-in-refinement.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-refinement.flags
+++ b/test/files/run/macro-declared-in-refinement.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-declared-in-trait.flags b/test/files/run/macro-declared-in-trait.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-declared-in-trait.flags
+++ b/test/files/run/macro-declared-in-trait.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-def-infer-return-type-a.flags b/test/files/run/macro-def-infer-return-type-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-def-infer-return-type-a.flags
+++ b/test/files/run/macro-def-infer-return-type-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-def-infer-return-type-b.flags b/test/files/run/macro-def-infer-return-type-b.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-def-infer-return-type-b.flags
+++ b/test/files/run/macro-def-infer-return-type-b.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-def-infer-return-type-c.flags b/test/files/run/macro-def-infer-return-type-c.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-def-infer-return-type-c.flags
+++ b/test/files/run/macro-def-infer-return-type-c.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-def-path-dependent-a.flags b/test/files/run/macro-def-path-dependent-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-def-path-dependent-a.flags
+++ b/test/files/run/macro-def-path-dependent-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-def-path-dependent-b.flags b/test/files/run/macro-def-path-dependent-b.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-def-path-dependent-b.flags
+++ b/test/files/run/macro-def-path-dependent-b.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-def-path-dependent-c.flags b/test/files/run/macro-def-path-dependent-c.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-def-path-dependent-c.flags
+++ b/test/files/run/macro-def-path-dependent-c.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-def-path-dependent-d.flags b/test/files/run/macro-def-path-dependent-d.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-def-path-dependent-d.flags
+++ b/test/files/run/macro-def-path-dependent-d.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-implicit-macro-has-implicit.flags b/test/files/run/macro-expand-implicit-macro-has-implicit.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-implicit-macro-has-implicit.flags
+++ b/test/files/run/macro-expand-implicit-macro-has-implicit.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-implicit-macro-is-implicit.flags b/test/files/run/macro-expand-implicit-macro-is-implicit.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-implicit-macro-is-implicit.flags
+++ b/test/files/run/macro-expand-implicit-macro-is-implicit.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-implicit-macro-is-val.flags b/test/files/run/macro-expand-implicit-macro-is-val.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-implicit-macro-is-val.flags
+++ b/test/files/run/macro-expand-implicit-macro-is-val.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-implicit-macro-is-view.flags b/test/files/run/macro-expand-implicit-macro-is-view.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-implicit-macro-is-view.flags
+++ b/test/files/run/macro-expand-implicit-macro-is-view.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-multiple-arglists.flags b/test/files/run/macro-expand-multiple-arglists.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-multiple-arglists.flags
+++ b/test/files/run/macro-expand-multiple-arglists.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-nullary-generic.flags b/test/files/run/macro-expand-nullary-generic.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-nullary-generic.flags
+++ b/test/files/run/macro-expand-nullary-generic.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-nullary-nongeneric.flags b/test/files/run/macro-expand-nullary-nongeneric.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-nullary-nongeneric.flags
+++ b/test/files/run/macro-expand-nullary-nongeneric.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-overload.flags b/test/files/run/macro-expand-overload.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-overload.flags
+++ b/test/files/run/macro-expand-overload.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-override.flags b/test/files/run/macro-expand-override.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-override.flags
+++ b/test/files/run/macro-expand-override.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-recursive.flags b/test/files/run/macro-expand-recursive.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-recursive.flags
+++ b/test/files/run/macro-expand-recursive.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-bounds-a.flags b/test/files/run/macro-expand-tparams-bounds-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-bounds-a.flags
+++ b/test/files/run/macro-expand-tparams-bounds-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-bounds-b.flags b/test/files/run/macro-expand-tparams-bounds-b.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-bounds-b.flags
+++ b/test/files/run/macro-expand-tparams-bounds-b.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-explicit.flags b/test/files/run/macro-expand-tparams-explicit.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-explicit.flags
+++ b/test/files/run/macro-expand-tparams-explicit.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-implicit.flags b/test/files/run/macro-expand-tparams-implicit.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-implicit.flags
+++ b/test/files/run/macro-expand-tparams-implicit.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-only-in-impl.flags b/test/files/run/macro-expand-tparams-only-in-impl.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-only-in-impl.flags
+++ b/test/files/run/macro-expand-tparams-only-in-impl.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-optional.flags b/test/files/run/macro-expand-tparams-optional.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-optional.flags
+++ b/test/files/run/macro-expand-tparams-optional.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-prefix-a.flags b/test/files/run/macro-expand-tparams-prefix-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-prefix-a.flags
+++ b/test/files/run/macro-expand-tparams-prefix-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-prefix-b.flags b/test/files/run/macro-expand-tparams-prefix-b.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-prefix-b.flags
+++ b/test/files/run/macro-expand-tparams-prefix-b.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-prefix-c1.flags b/test/files/run/macro-expand-tparams-prefix-c1.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-prefix-c1.flags
+++ b/test/files/run/macro-expand-tparams-prefix-c1.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-prefix-c2.flags b/test/files/run/macro-expand-tparams-prefix-c2.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-prefix-c2.flags
+++ b/test/files/run/macro-expand-tparams-prefix-c2.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-tparams-prefix-d1.flags b/test/files/run/macro-expand-tparams-prefix-d1.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-tparams-prefix-d1.flags
+++ b/test/files/run/macro-expand-tparams-prefix-d1.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-varargs-explicit-over-nonvarargs-bad.flags b/test/files/run/macro-expand-varargs-explicit-over-nonvarargs-bad.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-varargs-explicit-over-nonvarargs-bad.flags
+++ b/test/files/run/macro-expand-varargs-explicit-over-nonvarargs-bad.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-varargs-explicit-over-nonvarargs-good.flags b/test/files/run/macro-expand-varargs-explicit-over-nonvarargs-good.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-varargs-explicit-over-nonvarargs-good.flags
+++ b/test/files/run/macro-expand-varargs-explicit-over-nonvarargs-good.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-varargs-explicit-over-varargs.flags b/test/files/run/macro-expand-varargs-explicit-over-varargs.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-varargs-explicit-over-varargs.flags
+++ b/test/files/run/macro-expand-varargs-explicit-over-varargs.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-varargs-implicit-over-nonvarargs.flags b/test/files/run/macro-expand-varargs-implicit-over-nonvarargs.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-varargs-implicit-over-nonvarargs.flags
+++ b/test/files/run/macro-expand-varargs-implicit-over-nonvarargs.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-expand-varargs-implicit-over-varargs.flags b/test/files/run/macro-expand-varargs-implicit-over-varargs.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-expand-varargs-implicit-over-varargs.flags
+++ b/test/files/run/macro-expand-varargs-implicit-over-varargs.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-impl-default-params.flags b/test/files/run/macro-impl-default-params.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-impl-default-params.flags
+++ b/test/files/run/macro-impl-default-params.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-impl-rename-context.flags b/test/files/run/macro-impl-rename-context.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-impl-rename-context.flags
+++ b/test/files/run/macro-impl-rename-context.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-invalidret-doesnt-conform-to-def-rettype.flags b/test/files/run/macro-invalidret-doesnt-conform-to-def-rettype.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-invalidret-doesnt-conform-to-def-rettype.flags
+++ b/test/files/run/macro-invalidret-doesnt-conform-to-def-rettype.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-invalidret-doesnt-conform-to-impl-rettype.flags b/test/files/run/macro-invalidret-doesnt-conform-to-impl-rettype.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-invalidret-doesnt-conform-to-impl-rettype.flags
+++ b/test/files/run/macro-invalidret-doesnt-conform-to-impl-rettype.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-invalidret-nontypeable.flags b/test/files/run/macro-invalidret-nontypeable.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-invalidret-nontypeable.flags
+++ b/test/files/run/macro-invalidret-nontypeable.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-invalidusage-badret.flags b/test/files/run/macro-invalidusage-badret.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-invalidusage-badret.flags
+++ b/test/files/run/macro-invalidusage-badret.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-invalidusage-partialapplication.flags b/test/files/run/macro-invalidusage-partialapplication.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-invalidusage-partialapplication.flags
+++ b/test/files/run/macro-invalidusage-partialapplication.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-openmacros.flags b/test/files/run/macro-openmacros.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-openmacros.flags
+++ b/test/files/run/macro-openmacros.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-quasiinvalidbody-c.flags b/test/files/run/macro-quasiinvalidbody-c.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-quasiinvalidbody-c.flags
+++ b/test/files/run/macro-quasiinvalidbody-c.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-range.flags b/test/files/run/macro-range.flags
index 06a7b31f11..5e5dd6ce79 100644
--- a/test/files/run/macro-range.flags
+++ b/test/files/run/macro-range.flags
@@ -1 +1 @@
--Xmacros
+-language:experimental.macros
diff --git a/test/files/run/macro-reflective-ma-normal-mdmi.flags b/test/files/run/macro-reflective-ma-normal-mdmi.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reflective-ma-normal-mdmi.flags
+++ b/test/files/run/macro-reflective-ma-normal-mdmi.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-basic.flags b/test/files/run/macro-reify-basic.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-basic.flags
+++ b/test/files/run/macro-reify-basic.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-eval-eval.flags b/test/files/run/macro-reify-eval-eval.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-eval-eval.flags
+++ b/test/files/run/macro-reify-eval-eval.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-eval-outside-reify.flags b/test/files/run/macro-reify-eval-outside-reify.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-eval-outside-reify.flags
+++ b/test/files/run/macro-reify-eval-outside-reify.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-freevars.flags b/test/files/run/macro-reify-freevars.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-freevars.flags
+++ b/test/files/run/macro-reify-freevars.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-nested-a.flags b/test/files/run/macro-reify-nested-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-nested-a.flags
+++ b/test/files/run/macro-reify-nested-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-nested-b.flags b/test/files/run/macro-reify-nested-b.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-nested-b.flags
+++ b/test/files/run/macro-reify-nested-b.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-ref-to-packageless.flags b/test/files/run/macro-reify-ref-to-packageless.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-ref-to-packageless.flags
+++ b/test/files/run/macro-reify-ref-to-packageless.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-tagful-a.flags b/test/files/run/macro-reify-tagful-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-tagful-a.flags
+++ b/test/files/run/macro-reify-tagful-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-tagless-a.flags b/test/files/run/macro-reify-tagless-a.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-tagless-a.flags
+++ b/test/files/run/macro-reify-tagless-a.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-unreify.flags b/test/files/run/macro-reify-unreify.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-unreify.flags
+++ b/test/files/run/macro-reify-unreify.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-value-outside-reify.flags b/test/files/run/macro-reify-value-outside-reify.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-reify-value-outside-reify.flags
+++ b/test/files/run/macro-reify-value-outside-reify.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-rettype-mismatch.flags b/test/files/run/macro-rettype-mismatch.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-rettype-mismatch.flags
+++ b/test/files/run/macro-rettype-mismatch.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-settings.flags b/test/files/run/macro-settings.flags
index cdc7512197..15479e30b8 100644
--- a/test/files/run/macro-settings.flags
+++ b/test/files/run/macro-settings.flags
@@ -1 +1 @@
--Xmacros -Xmacro-settings:hello=1 \ No newline at end of file
+-language:experimental.macros -Xmacro-settings:hello=1 \ No newline at end of file
diff --git a/test/files/run/macro-sip19-revised.flags b/test/files/run/macro-sip19-revised.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-sip19-revised.flags
+++ b/test/files/run/macro-sip19-revised.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-sip19.flags b/test/files/run/macro-sip19.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-sip19.flags
+++ b/test/files/run/macro-sip19.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-typecheck-implicitsdisabled.flags b/test/files/run/macro-typecheck-implicitsdisabled.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-typecheck-implicitsdisabled.flags
+++ b/test/files/run/macro-typecheck-implicitsdisabled.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-typecheck-macrosdisabled.flags b/test/files/run/macro-typecheck-macrosdisabled.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-typecheck-macrosdisabled.flags
+++ b/test/files/run/macro-typecheck-macrosdisabled.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-undetparams-consfromsls.flags b/test/files/run/macro-undetparams-consfromsls.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-undetparams-consfromsls.flags
+++ b/test/files/run/macro-undetparams-consfromsls.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-undetparams-implicitval.flags b/test/files/run/macro-undetparams-implicitval.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-undetparams-implicitval.flags
+++ b/test/files/run/macro-undetparams-implicitval.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-undetparams-macroitself.flags b/test/files/run/macro-undetparams-macroitself.flags
index 7fea2ff901..cd66464f2f 100644
--- a/test/files/run/macro-undetparams-macroitself.flags
+++ b/test/files/run/macro-undetparams-macroitself.flags
@@ -1 +1 @@
--Xmacros \ No newline at end of file
+-language:experimental.macros \ No newline at end of file