PR# 11663 Failure in SED_OBJECT_GRAPH_TRAVERSABLE:internal_traverse

Problem Report Summary
Submitter: randyjohn
Category: EiffelBase
Priority: Medium
Date: 2006/11/22
Class: Bug
Severity: Serious
Number: 11663
Release: 5.7.64493
Confidential: No
Status: Analyzed
Responsible:
Environment: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727)
Synopsis: Failure in SED_OBJECT_GRAPH_TRAVERSABLE:internal_traverse

Description
During 'internal_traverse' my object had each element 'marked' but when it came time to 'unmark', the BOOLEAN was not already 'marked'.  This fails the precondition in 'unmark'.  I'm continuing with preconditions off in 'base'.
   Randy
To Reproduce

										
Problem Report Interactions
From:randyjohn    Date:2007/11/30    Download   
This bug is still present in 6.1.7.1123.  Any hope of getting it fixed?

From:randyjohn    Date:2007/01/11    Download   
I can reproduce this now.  The problem involves calling INTERNAL:make on one of these new type of expanded's that inherit from ANY.  Apparently, that doesn't work.
   Randy

class
	ROOT_CLASS

inherit
	INTERNAL

create
	make

feature
	make is
	local
		l_int: INTERNAL
		l_spec: SPECIAL[ANY]
		l_field: ANY
	do
		l_spec ?= (<<False, "hi">>).area

		-- This code represents what happens in SED_OBJECT_GRAPH_TRAVERSABLE:internal_traverse.
		l_field := l_spec.item(0)
		-- 'l_field' now refers to a BOOLEAN.  But this isn't an ordinary expanded BOOLEAN, nor is it
		-- a BOOLEAN_REF.  It is this new-fangled "reference BOOLEAN" (a lot like a BOOLEAN_REF).
		-- Apparently, you can't 'mark' this type of object.

		mark(l_field)
		print(is_marked(l_field).out + "%N")			-- This should be True but isn't.
		print(is_marked(l_spec.item(1)).out + "%N")		-- This should be True but isn't.
--		unmark(l_spec.item(1))							-- This will fail a require.

		-- This code better represents how I discovered
....
Output truncated, Click download to get the full message

From:manus_eiffel    Date:2006/11/22    Status: Analyzed    Download   
This indicates a major issue somewhere and disabling the assertion would only hide the problem. On which kind of type does it fail? Is this reproducible?