[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