PR# 3708 Wrong "Feature" in VTCG error message
Problem Report Summary
Submitter: gobobe
Category: Compiler
Priority: Medium
Date: 2004/03/20
Class: Bug
Severity: Non-critical
Number: 3708
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: Wrong "Feature" in VTCG error message
Description
ISE Eiffel 5.5.0409 (just to make sure the Eiffel version appears in the bug report).
This bug is related to [Compiler/3707].
Consider that we have the following expanded class:
-------------------------
expanded class B
inherit
ANY
redefine
default_create
end
create
default_create,
make_from_reference
--convert
-- make_from_reference ({reference B}),
-- to_reference: {reference B}
feature
default_create is
--
do
i := 45
end
make_from_reference (b: reference B) is
do
i := 46
end
to_reference: reference B is
do
create Result.default_create
end
i: INTEGER
end
-------------------------
Then when I try to compile:
-------------------------
class A
create
make
feature
make is
do
create l.make
end
l: LINKED_LIST [B]
end
-------------------------
I get the following error:
-------------------------------------------------------------------------------
Error code: VTCG
Error: actual generic parameter does not conform to constraint.
What to do: make sure that actual parameter is a type conforming to the
constraint (the type appearing after `->' for the corresponding formal).
Class: A
Feature: invariant
In declaration: LINKED_LIST [B]
For type: LINKED_LIST [B]
Argument number: 1:
Actual generic parameter: B
Type to which it should conform: ANY
-------------------------------------------------------------------------------
This is what I already reported in [Compiler/3707], but what I wanted to point out here is that 'LINKED_LIST [B]' does not appear in the invariant as indicated in the error message above. There is no invariant in class A, and the type actually appears in feature `l'.
To Reproduce
Problem Report Interactions