summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2017-02-20 14:38:16 +0100
committerGitHub <noreply@github.com>2017-02-20 14:38:16 +0100
commitcad3c3da3ea505b2e63878abad8df76365f999a4 (patch)
tree975230c312b3a7370279088776788cba171ab071 /src
parent3e9df417edc5007d6d07240524e75514f5a4ac06 (diff)
parentc396e965f1954cb899a1f6ae55ccae1c78284a18 (diff)
downloadscala-cad3c3da3ea505b2e63878abad8df76365f999a4.tar.gz
scala-cad3c3da3ea505b2e63878abad8df76365f999a4.tar.bz2
scala-cad3c3da3ea505b2e63878abad8df76365f999a4.zip
Merge pull request #5709 from adriaanm/sam_wild_bound
Ignore BoundedWildcardType in erasure type map
Diffstat (limited to 'src')
-rw-r--r--src/reflect/scala/reflect/internal/transform/Erasure.scala5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/internal/transform/Erasure.scala b/src/reflect/scala/reflect/internal/transform/Erasure.scala
index 24f8aa88e6..07ae71538c 100644
--- a/src/reflect/scala/reflect/internal/transform/Erasure.scala
+++ b/src/reflect/scala/reflect/internal/transform/Erasure.scala
@@ -161,6 +161,11 @@ trait Erasure {
}
if (newParents eq parents) tp
else ClassInfoType(newParents, decls, clazz)
+
+ // can happen while this map is being used before erasure (e.g. when reasoning about sam types)
+ // the regular mapOver will cause a class cast exception because TypeBounds don't erase to TypeBounds
+ case _: BoundedWildcardType => tp // skip
+
case _ =>
mapOver(tp)
}