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.
292
292
if (! sym.exists || (sym eq defn.LanguageModuleClass )) " "
293
293
else toPrefix(sym.owner) + sym.name + " ."
294
294
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 {
300
302
var c = ctx.outer
301
303
while (c.importInfo eq ctx.importInfo) c = c.outer
302
304
hasImport(c)
303
305
}
304
306
}
307
+ }
305
308
def hasOption = ctx.base.settings.language.value exists (s => s == featureName || s == " _" )
306
309
hasImport(ctx.withPhase(ctx.typerPhase)) || hasOption
307
310
}
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