Aladdin - Scala Bugtracking
[#397] project: compiler priority: medium category: bug
submitter assigned to status date submitted
Vincent Martin fixed 2005-02-01 14:28:01.0
subject Types like C.this.T escaping the context of class C
code
abstract class Root {

  abstract class Edge {
    type V;
    def source: V;
  }

  abstract class Graph {
    type W;
    type E <: Edge{type V = W};
    def edge: E;
  }

  val g: Graph{type W = Int};
  val x: Int = g.edge.source;
}
what happened
bug1.scala:15: type mismatch;
 found   : Graph.this.W
 required: scala.Int
  val x: Int = g.edge.source;
                     ^
one error found
what expected Silent compilation.

The type found for g.edge.source is "Graph.this.W". It should be "g.W". Anyway "Graph.this.W" makes no sense (is ill-formed) outside of the context of the class Graph.

[back to overview]
Changes of this bug report
Martin  edited on  2006-10-30 14:02:39.0