diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2017-02-20 14:38:16 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-20 14:38:16 +0100 |
commit | cad3c3da3ea505b2e63878abad8df76365f999a4 (patch) | |
tree | 975230c312b3a7370279088776788cba171ab071 /src | |
parent | 3e9df417edc5007d6d07240524e75514f5a4ac06 (diff) | |
parent | c396e965f1954cb899a1f6ae55ccae1c78284a18 (diff) | |
download | scala-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.scala | 5 |
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) } |