diff options
author | odersky <odersky@gmail.com> | 2016-12-18 15:44:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-18 15:44:03 +0100 |
commit | 18b8daa30916b2efaa59638c21198d401a67e46a (patch) | |
tree | 09c1a3be43132c89f84605f78429d0094e8749e6 /compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala | |
parent | 5df985cc599a0c69029773e3416bbb5fc883476a (diff) | |
parent | 1f9990b58c23ba74a8d96166700e755704b78a49 (diff) | |
download | dotty-18b8daa30916b2efaa59638c21198d401a67e46a.tar.gz dotty-18b8daa30916b2efaa59638c21198d401a67e46a.tar.bz2 dotty-18b8daa30916b2efaa59638c21198d401a67e46a.zip |
Merge pull request #1817 from dotty-staging/fix-#1802
Fix #1802: Make sure errors are not swept under the carpet
Diffstat (limited to 'compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala')
-rw-r--r-- | compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala b/compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala index ee2d68278..ca0af0e2b 100644 --- a/compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala +++ b/compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala @@ -189,9 +189,8 @@ trait TypeAssigner { val where = if (ctx.owner.exists) s" from ${ctx.owner.enclosingClass}" else "" val whyNot = new StringBuffer alts foreach (_.isAccessibleFrom(pre, superAccess, whyNot)) - if (!tpe.isError) - ctx.error(ex"$what cannot be accessed as a member of $pre$where.$whyNot", pos) - ErrorType + if (tpe.isError) tpe + else errorType(ex"$what cannot be accessed as a member of $pre$where.$whyNot", pos) } } else if (d.symbol is TypeParamAccessor) @@ -215,17 +214,17 @@ trait TypeAssigner { else if (site.derivesFrom(defn.DynamicClass) && !Dynamic.isDynamicMethod(name)) { TryDynamicCallType } else { - if (!site.isErroneous) { + if (site.isErroneous) UnspecifiedErrorType + else { def kind = if (name.isTypeName) "type" else "value" def addendum = if (site.derivesFrom(defn.DynamicClass)) "\npossible cause: maybe a wrong Dynamic method signature?" else "" - ctx.error( + errorType( if (name == nme.CONSTRUCTOR) ex"$site does not have a constructor" else NotAMember(site, name, kind), pos) } - ErrorType } } |