From 7838b505a7340ceff1b61c1247ae14cece137ad5 Mon Sep 17 00:00:00 2001 From: Matt Bovel Date: Tue, 8 Nov 2022 17:38:42 +0100 Subject: [PATCH 1/2] Remove ununsed globalOnlyImports --- compiler/src/dotty/tools/dotc/config/Feature.scala | 2 -- compiler/src/dotty/tools/dotc/parsing/Parsers.scala | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/compiler/src/dotty/tools/dotc/config/Feature.scala b/compiler/src/dotty/tools/dotc/config/Feature.scala index 6d905f500c54..8d8fba8ff288 100644 --- a/compiler/src/dotty/tools/dotc/config/Feature.scala +++ b/compiler/src/dotty/tools/dotc/config/Feature.scala @@ -31,8 +31,6 @@ object Feature: val pureFunctions = experimental("pureFunctions") val captureChecking = experimental("captureChecking") - val globalOnlyImports: Set[TermName] = Set(pureFunctions, captureChecking) - /** Is `feature` enabled by by a command-line setting? The enabling setting is * * -language:feature diff --git a/compiler/src/dotty/tools/dotc/parsing/Parsers.scala b/compiler/src/dotty/tools/dotc/parsing/Parsers.scala index 653f61447492..add34b9aa2f7 100644 --- a/compiler/src/dotty/tools/dotc/parsing/Parsers.scala +++ b/compiler/src/dotty/tools/dotc/parsing/Parsers.scala @@ -30,7 +30,7 @@ import scala.annotation.tailrec import rewrites.Rewrites.{patch, overlapsPatch} import reporting._ import config.Feature -import config.Feature.{sourceVersion, migrateTo3, globalOnlyImports} +import config.Feature.{sourceVersion, migrateTo3} import config.SourceVersion._ import config.SourceVersion From 4702968c5ea1c29cc6b07b0f49c06e9e526cdae8 Mon Sep 17 00:00:00 2001 From: Matt Bovel Date: Tue, 8 Nov 2022 18:49:47 +0100 Subject: [PATCH 2/2] Run handleGlobalLanguageImport in setImportInfo --- compiler/src/dotty/tools/dotc/core/Contexts.scala | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/compiler/src/dotty/tools/dotc/core/Contexts.scala b/compiler/src/dotty/tools/dotc/core/Contexts.scala index d2a88a422b2e..b30e0e71e8d2 100644 --- a/compiler/src/dotty/tools/dotc/core/Contexts.scala +++ b/compiler/src/dotty/tools/dotc/core/Contexts.scala @@ -16,6 +16,8 @@ import ast.untpd import util.{NoSource, SimpleIdentityMap, SourceFile, HashSet, ReusableInstance} import typer.{Implicits, ImportInfo, SearchHistory, SearchRoot, TypeAssigner, Typer, Nullables} import inlines.Inliner +import ast.{tpd, untpd} +import config.Feature import Nullables._ import Implicits.ContextualImplicits import config.Settings._ @@ -648,6 +650,14 @@ object Contexts { case Some(false) if ctx.settings.YexplicitNulls.value => setMode(this.mode | Mode.SafeNulls) case _ => + + importInfo.qualifier match + case ref: untpd.RefTree => + val prefix = ref.name.asTermName + for case untpd.ImportSelector(untpd.Ident(imported), untpd.EmptyTree, _) <- importInfo.selectors do + Feature.handleGlobalLanguageImport(prefix, imported) + case _ => () + updateStore(importInfoLoc, importInfo) def setTypeAssigner(typeAssigner: TypeAssigner): this.type = updateStore(typeAssignerLoc, typeAssigner)