aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/core')
-rw-r--r--src/dotty/tools/dotc/core/Denotations.scala9
-rw-r--r--src/dotty/tools/dotc/core/Symbols.scala2
2 files changed, 7 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/core/Denotations.scala b/src/dotty/tools/dotc/core/Denotations.scala
index dd740e916..a89aa6bf8 100644
--- a/src/dotty/tools/dotc/core/Denotations.scala
+++ b/src/dotty/tools/dotc/core/Denotations.scala
@@ -182,12 +182,12 @@ object Denotations {
* Throw a `TypeError` if predicate fails to disambiguate symbol.
* Return a stubsymbol if no alternative satisfies the predicate.
*/
- def requiredSymbol(p: Symbol => Boolean, source: AbstractFile = null)(implicit ctx: Context): Symbol = {
+ def requiredSymbol(p: Symbol => Boolean, name: Name, source: AbstractFile = null)(implicit ctx: Context): Symbol = {
val sym = disambiguate(p).symbol
if (sym.exists) sym else {
val firstSym = ((NoSymbol: Symbol) /: alternatives.map(_.symbol)) (_ orElse _)
val owner = if (firstSym.exists) firstSym.owner else NoSymbol
- ctx.newStubSymbol(owner, firstSym.name, source)
+ ctx.newStubSymbol(owner, name, source)
}
}
@@ -405,6 +405,9 @@ object Denotations {
val valid = _validFor
def bringForward(): Unit = {
this match {
+ case NoDenotation =>
+ validFor = Period(currentPeriod.runId, validFor.firstPhaseId, validFor.lastPhaseId)
+ return
case denot: SymDenotation =>
val top = denot.topLevelSym
if (top.owner.info.decl(top.name).symbol == top) {
@@ -576,7 +579,7 @@ object Denotations {
val result = owner.info.member(name)
if (result.exists) result
else {
- val alt = missingHook(owner.symbol, name)
+ val alt = missingHook(owner.symbol.moduleClass, name)
if (alt.exists) alt.denot
else result
}
diff --git a/src/dotty/tools/dotc/core/Symbols.scala b/src/dotty/tools/dotc/core/Symbols.scala
index ddc667fd6..52456f98d 100644
--- a/src/dotty/tools/dotc/core/Symbols.scala
+++ b/src/dotty/tools/dotc/core/Symbols.scala
@@ -261,7 +261,7 @@ trait Symbols { this: Context =>
def requiredClass(path: PreName): ClassSymbol = {
val pathName = path.toTypeName
- val sym = base.staticRef(pathName).requiredSymbol(_.isClass, pathName).asClass
+ base.staticRef(pathName).requiredSymbol(_.isClass, pathName).asClass
}
def requiredModule(path: PreName): TermSymbol = {