| [#846] | project: specification | priority: low | category: bug | |
|---|---|---|---|---|
| submitter | assigned to | status | date submitted | |
| Sean | Martin | fixed | 2006-11-29 12:13:13.0 | |
| subject | Silent coercion of null to compound type | |||
| code |
package test;
trait Test {
type Bar;
trait FooImpl;
trait Bob {
def bar : Bar with FooImpl;
}
def ifn[A,B](a : A)(f : A => B) =
if (a != null) f(a) else null;
val bob : Bob = null;
val bar = ifn(bob)(.bar);
assert(bar == null);
}
|
|||
| what happened | Compiles fine. |
|||
| what expected | ||||
| [back to overview] | ||||
| Martin edited on 2006-12-01 16:12:58.0 |
| Why should it not compile? |
| Martin edited on 2006-12-05 11:40:21.0 |
| I think you want to define `ifn' with result type `B', otherwise the example compiles fine (ifn returns an Any). If you add the result type, it still compiled. That was a bug which I fixed now. |