diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2012-04-27 10:17:53 +0200 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2012-04-27 10:17:53 +0200 |
commit | c577aaca7a7dab7b03fc3b69d766378486e10c00 (patch) | |
tree | 218982b5c6251a5f9bd5f00e4c0ca4f635c1d55d | |
parent | b1aaf747754d40a721a2e3b4095b6eaf2384e770 (diff) | |
download | scala-c577aaca7a7dab7b03fc3b69d766378486e10c00.tar.gz scala-c577aaca7a7dab7b03fc3b69d766378486e10c00.tar.bz2 scala-c577aaca7a7dab7b03fc3b69d766378486e10c00.zip |
SI-3755: catch exception thrown by adaptToNewrun
it would be nice to have a test for this,
but you'd need to involve the repl,
as I couldn't trigger it using multiple scalac runs
-rw-r--r-- | src/compiler/scala/reflect/internal/Types.scala | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/compiler/scala/reflect/internal/Types.scala b/src/compiler/scala/reflect/internal/Types.scala index 2fe7dfda17..c049df47af 100644 --- a/src/compiler/scala/reflect/internal/Types.scala +++ b/src/compiler/scala/reflect/internal/Types.scala @@ -4832,9 +4832,14 @@ trait Types extends api.Types { self: SymbolTable => if (sym.isPackage) tp else { val pre1 = this(pre) - val sym1 = adaptToNewRun(pre1, sym) - if ((pre1 eq pre) && (sym1 eq sym)) tp - else singleType(pre1, sym1) + try { + val sym1 = adaptToNewRun(pre1, sym) + if ((pre1 eq pre) && (sym1 eq sym)) tp + else singleType(pre1, sym1) + } catch { + case _: MissingTypeControl => + tp + } } case TypeRef(pre, sym, args) => if (sym.isPackageClass) tp |