File tree Expand file tree Collapse file tree 2 files changed +15
-5
lines changed
compiler/src/dotty/tools/dotc/core Expand file tree Collapse file tree 2 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -292,16 +292,19 @@ trait TypeOps { this: Context => // TODO: Make standalone object.
292292 if (! sym.exists || (sym eq defn.LanguageModuleClass )) " "
293293 else toPrefix(sym.owner) + sym.name + " ."
294294 def featureName = toPrefix(owner) + feature
295- def hasImport (implicit ctx : Context ): Boolean =
296- ctx.importInfo != null && {
297- ctx.importInfo.site.widen.typeSymbol == owner &&
298- ! ctx.importInfo.excluded.contains(feature) &&
299- ctx.importInfo.originals.contains(feature) || {
295+ def hasImport (implicit ctx : Context ): Boolean = {
296+ if (ctx.importInfo eq null ) false
297+ else {
298+ val isImportOwner = ctx.importInfo.site.widen.typeSymbol eq owner
299+ if (isImportOwner && ctx.importInfo.excluded.contains(feature)) false
300+ else if (isImportOwner && ctx.importInfo.originals.contains(feature)) true
301+ else {
300302 var c = ctx.outer
301303 while (c.importInfo eq ctx.importInfo) c = c.outer
302304 hasImport(c)
303305 }
304306 }
307+ }
305308 def hasOption = ctx.base.settings.language.value exists (s => s == featureName || s == " _" )
306309 hasImport(ctx.withPhase(ctx.typerPhase)) || hasOption
307310 }
Original file line number Diff line number Diff line change 1+ import foo .dynamics
2+
3+ class Foo () extends Dynamic // error: extension of type scala.Dynamic needs to be enabled
4+
5+ package foo {
6+ class dynamic
7+ }
You can’t perform that action at this time.
0 commit comments