A quick Scala gotcha
Wouldn't it be nice, I thought, to be able to put UI decoration as a mixin to any sort of component, like
In Scala 2.8 recent nightlies, this compiles happily -- but when you run it, the self.paintComponent(g)
call just stack overflows, flipping between TiledContainer.paintComponent
and Tiled.paintComponent
as it goes.
At 2.7.x, it doesn't compile -- which at least prevents you getting the run-time error
error: overriding method paintComponent in class Component of type (g: scala.swing.package.Graphics2D)Unit; method paintComponent in trait Tiled of type (g: java.awt.Graphics2D)Unit cannot override a concrete member without a third member that's overridden by both (this rule is designed to prevent ``accidental overrides'') class TiledContainer(tiledBackgroundImage : Image, constraints :Seq[String]) extends Form(constraints) with Tiled with HasImage {
No comments :
Post a Comment