Skip to content

Commit 0289612

Browse files
committed
Bring back -Yerased-terms for bootstrapping
1 parent e9c944d commit 0289612

File tree

5 files changed

+9
-3
lines changed

5 files changed

+9
-3
lines changed

compiler/src/dotty/tools/dotc/config/ScalaSettings.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ class ScalaSettings extends Settings.SettingGroup with CommonScalaSettings {
229229
val YexplicitNulls: Setting[Boolean] = BooleanSetting("-Yexplicit-nulls", "Make reference types non-nullable. Nullable types can be expressed with unions: e.g. String|Null.")
230230
val YcheckInit: Setting[Boolean] = BooleanSetting("-Ysafe-init", "Ensure safe initialization of objects")
231231
val YrequireTargetName: Setting[Boolean] = BooleanSetting("-Yrequire-targetName", "Warn if an operator is defined without a @targetName annotation")
232+
val YerasedTerms: Setting[Boolean] = BooleanSetting("-Yerased-terms", "(disabled, use -language:experimental.erasedTerms instead)")
232233

233234
/** Area-specific debug output */
234235
val YexplainLowlevel: Setting[Boolean] = BooleanSetting("-Yexplain-lowlevel", "When explaining type errors, show types at a lower level.")

compiler/src/dotty/tools/dotc/parsing/Parsers.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,8 @@ object Parsers {
231231
}
232232

233233
extension (td: TokenData = in)
234-
def isErased: Boolean = td.isIdent(nme.erased) && featureEnabled(Feature.erasedTerms)
234+
def isErased: Boolean =
235+
td.isIdent(nme.erased) && (featureEnabled(Feature.erasedTerms) || ctx.settings.YerasedTerms.value)
235236

236237
/* ------------- ERROR HANDLING ------------------------------------------- */
237238

@@ -2697,7 +2698,8 @@ object Parsers {
26972698
case SEALED => Mod.Sealed()
26982699
case IDENTIFIER =>
26992700
name match {
2700-
case nme.erased if featureEnabled(Feature.erasedTerms) => Mod.Erased()
2701+
case nme.erased if featureEnabled(Feature.erasedTerms) || ctx.settings.YerasedTerms.value =>
2702+
Mod.Erased()
27012703
case nme.inline => Mod.Inline()
27022704
case nme.opaque => Mod.Opaque()
27032705
case nme.open => Mod.Open()

compiler/src/dotty/tools/dotc/typer/Implicits.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -889,7 +889,7 @@ trait Implicits:
889889
case Select(qual, nme.apply) if defn.isFunctionType(qual.tpe.widen) =>
890890
val qt = qual.tpe.widen
891891
val qt1 = qt.dealiasKeepAnnots
892-
def addendum = if (qt1 eq qt) "" else (i"\nwhich is an alias of: $qt1")
892+
def addendum = if (qt1 eq qt) "" else (i"\nThe required type is an alias of: $qt1")
893893
em"parameter of ${qual.tpe.widen}$addendum"
894894
case _ =>
895895
em"${ if paramName.is(EvidenceParamName) then "an implicit parameter"

library/src/scala/compiletime/package.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package scala
22
import annotation.compileTimeOnly
33

44
package object compiletime {
5+
import language.experimental.erasedTerms
56

67
/** Use this method when you have a type, do not have a value for it but want to
78
* pattern match on it. For example, given a type `Tup <: Tuple`, one can

project/Build.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,8 @@ object Build {
680680
"-sourcepath", (sourceDirectories in Compile).value.map(_.getAbsolutePath).distinct.mkString(File.pathSeparator),
681681
// support declaration of scala.compiletime.erasedValue
682682
"-Yerased-terms"
683+
// TODO: drop after bootstrap with erasure language import
684+
// scala.compile now contains the roght language import so no global setting is needed
683685
),
684686
)
685687

0 commit comments

Comments
 (0)