diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-02-23 23:18:38 +0100 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-02-23 23:18:38 +0100 |
commit | 5c84255b6783a0ff21999d0b7456b2d7ff5ee953 (patch) | |
tree | 5adc14578378138d8bb6880fa11dbd8b80575ae6 /test/files/run/t1503.scala | |
parent | efa99c01974febe227937f090afbb93b9a6a59a5 (diff) | |
parent | c001b888b896989a2c0afa0c24d038502970151c (diff) | |
download | scala-5c84255b6783a0ff21999d0b7456b2d7ff5ee953.tar.gz scala-5c84255b6783a0ff21999d0b7456b2d7ff5ee953.tar.bz2 scala-5c84255b6783a0ff21999d0b7456b2d7ff5ee953.zip |
Merge pull request #3559 from adriaanm/t1503
SI-1503 don't assume unsound type for ident/literal patterns
Diffstat (limited to 'test/files/run/t1503.scala')
-rw-r--r-- | test/files/run/t1503.scala | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/files/run/t1503.scala b/test/files/run/t1503.scala new file mode 100644 index 0000000000..1be0e74ac2 --- /dev/null +++ b/test/files/run/t1503.scala @@ -0,0 +1,20 @@ +object Whatever { + override def equals(x: Any) = true +} + +object Test extends App { + // this should make it abundantly clear Any is the best return type we can guarantee + def matchWhatever(x: Any): Any = x match { case n @ Whatever => n } + // when left to its own devices, and not under -Xfuture, the return type is Whatever.type + def matchWhateverCCE(x: Any) = x match { case n @ Whatever => n } + + // just to exercise it a bit + assert(matchWhatever(1) == 1) + assert(matchWhatever("1") == "1") + + try { + matchWhateverCCE("1"): Whatever.type + } catch { + case _: ClassCastException => println("whoops") + } +}
\ No newline at end of file |