[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2006-03-17 (09:55) |
From: | Jacques Garrigue <garrigue@m...> |
Subject: | Re: [Caml-list] spurious warning? "polymorphic method not principal" |
From: j h woodyatt <jhw@conjury.org> > > (* test.ml *) > > class alfa = object(_:'self) > > method x: 'a. ('a, out_channel, unit) format -> 'a = Printf.printf > > end > > > > class bravo a = object > > val y: alfa = (a :> alfa) > > initializer y#x "bravo initialized" > > end > > > > class charlie a = object > > inherit bravo a > > initializer y#x "charlie initialized" > > end > > $ ocamlc -principal -o test test.ml > File "test.ml", line 13, characters 14-17: > Warning X: this use of a polymorphic method is not principal. > > It warns about the use of the polymorphic method on the object in the > membership of the base class, but only when it's invoked from the > derived class. This confuses me. Is this a bug in my code? No, this is a bug in the compiler. I'll try to fix it. Jacques Garrigue