aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/TypeOps.scala
diff options
context:
space:
mode:
authorNicolas Stucki <nicolas.stucki@gmail.com>2016-06-06 14:16:10 +0200
committerNicolas Stucki <nicolas.stucki@gmail.com>2016-07-07 11:10:45 +0200
commit7e00c724273d432c8900c0e8ec852bb77357958e (patch)
treee38ca49a5b443df99088a91b14d88340e121dab1 /src/dotty/tools/dotc/core/TypeOps.scala
parent5a7cacbb37f8f1edfded03a095eb45c04a883185 (diff)
downloaddotty-7e00c724273d432c8900c0e8ec852bb77357958e.tar.gz
dotty-7e00c724273d432c8900c0e8ec852bb77357958e.tar.bz2
dotty-7e00c724273d432c8900c0e8ec852bb77357958e.zip
Fix TypeOps.featureEnabled ignoring import disabling.
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeOps.scala')
-rw-r--r--src/dotty/tools/dotc/core/TypeOps.scala19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/dotty/tools/dotc/core/TypeOps.scala b/src/dotty/tools/dotc/core/TypeOps.scala
index 3da119a9c..63d8dff3b 100644
--- a/src/dotty/tools/dotc/core/TypeOps.scala
+++ b/src/dotty/tools/dotc/core/TypeOps.scala
@@ -458,15 +458,16 @@ trait TypeOps { this: Context => // TODO: Make standalone object.
if (!sym.exists || (sym eq defn.LanguageModuleClass) || (sym eq defn.Scala2LanguageModuleRef)) ""
else toPrefix(sym.owner) + sym.name + "."
def featureName = toPrefix(owner) + feature
- def hasImport(implicit ctx: Context): Boolean = (
- ctx.importInfo != null
- && ( (ctx.importInfo.site.widen.typeSymbol eq owner)
- && ctx.importInfo.originals.contains(feature)
- ||
- { var c = ctx.outer
- while (c.importInfo eq ctx.importInfo) c = c.outer
- hasImport(c)
- }))
+ def hasImport(implicit ctx: Context): Boolean = {
+ if (ctx.importInfo == null || (ctx.importInfo.site.widen.typeSymbol ne owner)) false
+ else if (ctx.importInfo.excluded.contains(feature)) false
+ else if (ctx.importInfo.originals.contains(feature)) true
+ else {
+ var c = ctx.outer
+ while (c.importInfo eq ctx.importInfo) c = c.outer
+ hasImport(c)
+ }
+ }
def hasOption = ctx.base.settings.language.value exists (s => s == featureName || s == "_")
hasImport(ctx.withPhase(ctx.typerPhase)) || hasOption
}