PR# 19974 Current used before initialized - non-object call

Problem Report Summary
Submitter: gobobe
Category: Compiler
Priority: Low
Date: 2026/04/24
Class: Bug
Severity: Non-critical
Number: 19974
Release: 25.12.9.8922
Confidential: No
Status: Open
Responsible:
Environment: win
Synopsis: Current used before initialized - non-object call

Description
The following program is not valid. The compiler should report a VEVI error because `Current` is used  before the attribute `b` of attached type is initialized in the creation procedure of class `AA`. Instead of that we get a call-on-void_target:

******************************** Thread exception *****************************
In thread           Root thread            0x0 (thread id)
*******************************************************************************
-------------------------------------------------------------------------------
Class / Object      Routine                Nature of exception           Effect
-------------------------------------------------------------------------------
BB                  f @N                   is_empty:
<XXXXXXXXXXXXXXXX>                         Feature call on void target.  Fail
-------------------------------------------------------------------------------
BB                  f @N
<XXXXXXXXXXXXXXXX>                         Routine failure.              Fail
-------------------------------------------------------------------------------
AA                  make @N
<XXXXXXXXXXXXXXXX>                         Routine failure.              Fail
-------------------------------------------------------------------------------
AA                  root's creation                                     
<XXXXXXXXXXXXXXXX>                         Routine failure.              Exit
-------------------------------------------------------------------------------
To Reproduce
class AA

create

	make

feature

	make
		do
			{BB}.f (Current)
			b := "Eiffel"
		end

	b: STRING

end
~~~~~~~
class BB

feature

	f (a: AA)
		local
			b: BOOLEAN
		do
			b := a.b.is_empty
		ensure
			class
		end

end
Problem Report Interactions