aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-10-18 16:15:40 +0200
committerFelix Mulder <felix.mulder@gmail.com>2016-11-07 13:12:53 +0100
commit98c6a0342f2903f8cbaf34e0f9a13be40916c7b4 (patch)
tree9db5c1c3eac58d28eb107947fdbc297eb4d30ef2 /src
parent5d590242132b0f38fc04afed2c787dadfd8d6c2f (diff)
downloaddotty-98c6a0342f2903f8cbaf34e0f9a13be40916c7b4.tar.gz
dotty-98c6a0342f2903f8cbaf34e0f9a13be40916c7b4.tar.bz2
dotty-98c6a0342f2903f8cbaf34e0f9a13be40916c7b4.zip
Fix #1605: don't inline methods that have errors
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/typer/Inliner.scala6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/typer/Inliner.scala b/src/dotty/tools/dotc/typer/Inliner.scala
index 4869b5e16..72a0158a5 100644
--- a/src/dotty/tools/dotc/typer/Inliner.scala
+++ b/src/dotty/tools/dotc/typer/Inliner.scala
@@ -146,7 +146,7 @@ object Inliner {
addAccessor(tree, methPart, targs, argss,
accessedType = methPart.tpe.widen,
rhs = (qual, tps, argss) => qual.appliedToTypes(tps).appliedToArgss(argss))
- } else {
+ } else {
// TODO: Handle references to non-public types.
// This is quite tricky, as such types can appear anywhere, including as parts
// of types of other things. For the moment we do nothing and complain
@@ -191,7 +191,9 @@ object Inliner {
sym.updateAnnotation(LazyBodyAnnotation { _ =>
implicit val ctx: Context = inlineCtx
val tree1 = treeExpr(ctx)
- makeInlineable(tree1)
+ if (tree1.hasType && !tree1.tpe.isError)
+ makeInlineable(tree1)
+ else tree1
})
}
}