[M3commit] CVS Update: cm3
Rodney M. Bates
rodney at elego.de
Mon Jan 27 21:47:25 CET 2014
CVSROOT: /usr/cvs
Changes by: rodney at birch. 14/01/27 21:47:25
Modified files:
cm3/m3-sys/m3front/src/builtinOps/: Narrow.m3
Log message:
Fix a long-standing bug in generated code for runtime narrow
operations. It was only showing up when all of the following hold:
For NARROW(e, T) (or an equivalent implicit narrow)
1) Expression e has static type REFANY.
2) Type T is known locally as T <: REFANY, with no revelation visible.
3) The (elsewhere) revealed type of T is an object type.
4) The allocated type of e is a proper subtype of revealed T.
In this case, the generated code was demanding at runtime that the allocated
type of e be exactly T, not accepting a proper subtype thereof.
More information about the M3commit
mailing list