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