PR# 3709 Initialization of Tuples of expanded

Problem Report Summary
Submitter: gobobe
Category: Runtime
Priority: Medium
Date: 2004/03/20
Class: Bug
Severity: Serious
Number: 3709
Release: 5.5.0409
Confidential: No
Status: Open
Responsible:
Environment: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02
Synopsis: Initialization of Tuples of expanded

Description
ISE Eiffel 5.5.0409

Let's consider this class:

---------------------
class B

inherit

	ANY
		redefine
			default_create
		end

create

	default_create,
	make_from_expanded

convert
	make_from_expanded ({expanded B}),
	to_expanded: {expanded B}

feature

	default_create is
			-- 
		do
			i := 45
		end

	make_from_expanded (b: expanded B) is
		do
			i := b.i
		end

	to_expanded: expanded B is
		do
			Result.set_i (i)
		end

	i: INTEGER

	set_i (int: INTEGER) is
		do
			i := int
		end

end
---------------------

Now if I write:

---------------------
class A

create

	make

feature

	make is
		local
			tb: TUPLE [expanded B]
		do
			create tb
			print (tb.generating_type)
			print ("%N")
			if tb.item (1) = Void then
				print ("Void%N")
			else
				print (tb.item (1))
				print ("%N")
			end
		end

end
---------------------

it will print:

---------------------
TUPLE [expanded B]
Void
---------------------

Because the item in the Tuple is declared of type 'expanded B', I would have expected to have this item being initialized when creating the Tuple (in the same way it is initialized when creating an ARRAY [expanded B] for example). Note that if I replace 'TUPLE [expanded B]' by 'TUPLE [INTEGER]' then the item is initialized as expected (getting value 0 instead of this erroneous Void).
To Reproduce

										
Problem Report Interactions
From:gobobe    Date:2004/03/20    Download