summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2012-04-27 10:17:53 +0200
committerAdriaan Moors <adriaan.moors@epfl.ch>2012-04-27 10:17:53 +0200
commitc577aaca7a7dab7b03fc3b69d766378486e10c00 (patch)
tree218982b5c6251a5f9bd5f00e4c0ca4f635c1d55d
parentb1aaf747754d40a721a2e3b4095b6eaf2384e770 (diff)
downloadscala-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.scala11
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