@@ -148,7 +148,7 @@ object Feature:
148
148
false
149
149
150
150
def checkExperimentalFeature (which : String , srcPos : SrcPos , note : => String = " " )(using Context ) =
151
- if ! isExperimentalGloballyEnabled && ! isExperimentalByImportEnabled && ! isExperimentalUnstableEnabled then
151
+ if ! isExperimentalEnabled && ! isExperimentalUnstableEnabled then
152
152
report.error(
153
153
em """ Experimental $which may only be used under experimental mode:
154
154
| 1. In a definition marked as @experimental
@@ -161,7 +161,7 @@ object Feature:
161
161
ccEnabled && defn.ccExperimental.contains(sym)
162
162
163
163
def checkExperimentalDef (sym : Symbol , srcPos : SrcPos )(using Context ) =
164
- if ! isExperimentalGloballyEnabled && ! isExperimentalByImportEnabled && ! isExperimentalUnstableEnabled then
164
+ if ! isExperimentalEnabled && ! isExperimentalUnstableEnabled then
165
165
val experimentalSym =
166
166
if sym.hasAnnotation(defn.ExperimentalAnnot ) then sym
167
167
else if sym.owner.hasAnnotation(defn.ExperimentalAnnot ) then sym.owner
@@ -184,17 +184,14 @@ object Feature:
184
184
def isExperimentalUnstableEnabled (using Context ): Boolean =
185
185
Properties .experimental && ! ctx.settings.YnoExperimental .value
186
186
187
- /** Experimental mode enabled in this compilation unit
187
+ /** Experimental mode enabled in this scope if:
188
188
* - Compiled with `-experimental`
189
189
* - Compiled with `-language:experimental.xyz`
190
+ * - A `language.experimental.xyz` import is in scope
190
191
*/
191
- def isExperimentalGloballyEnabled (using Context ): Boolean =
192
+ def isExperimentalEnabled (using Context ): Boolean =
192
193
ctx.settings.experimental.value ||
193
- experimentalAutoEnableFeatures.exists(enabledBySetting)
194
-
195
- /** Experimental mode enabled by a `language.experimental` import in scope */
196
- def isExperimentalByImportEnabled (using Context ): Boolean =
197
- experimentalAutoEnableFeatures.exists(enabledByImport)
194
+ experimentalAutoEnableFeatures.exists(enabled)
198
195
199
196
/** Handle language import `import language.<prefix>.<imported>` if it is one
200
197
* of the global imports `pureFunctions` or `captureChecking`. In this case
0 commit comments