| [#870] | project: compiler | priority: low | category: bug | |
|---|---|---|---|---|
| submitter | assigned to | status | date submitted | |
| Sean | Martin | noise | 2006-12-17 16:33:25.0 | |
| subject | another null loophole | |||
| code |
trait HasNodeXXX {
def xxx : Node = null;
type Node <: NodeImpl;
implicit def coerce(n : NodeImpl) : Node =
if (n == null) null else n.self;
trait NodeImpl { def self : Node; }
}
|
|||
| what happened | Compiles. |
|||
| what expected | Should cause type errors as if coerce is not implicit:
type mismatch; found : scala.Null(null) required: HasNodeXXX.this.Node lampion/src/lampion/core HasNodeXXX.scala line 3 type mismatch; found : scala.Null(null) required: HasNodeXXX.this.Node lampion/src/lampion/core HasNodeXXX.scala line 6 |
|||
| [back to overview] | ||||
| Sean edited on 2006-12-18 14:08:52.0 |
| Found out coerce is being called recursively to coerce null into Node. |