PR# 19411 [er] Full class checking and VBAC-2
Problem Report Summary
Submitter: axarosenberg
Category: Compiler
Priority: High
Date: 2017/11/28
Class: Bug
Severity: Serious
Number: 19411
Release: 17.11
Confidential: No
Status: Open
Responsible:
Environment: win
Synopsis: [er] Full class checking and VBAC-2
Description
When compiling the code below in full_class_checking mode, we get a VBAC-2 error:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VBAC(2) Target of assigner call has no associated assigner command.
Error: target of assigner call has no associated assigner command.
What to do: add an assigner mark to the declaration of the target feature
or use a dot form of a call.
Class: B
Source class: A
Feature: f
Line: 7
do
-> Current.item (1) := 2
end
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I think that this is wrong. The code of feature `f' should first be unfolded in the context of class A, and then checked in the context of B. So the code which should be checked in the context of B should be:
Current.put (2, 1)
And this code is valid.
--
Eric Bezault
To Reproduce
~~~~~~~~~~~~~~~~~~~~~~~~~~ class TEST create make feature make local b: B do create b b.f end end ~~~~~~~~~~~~~~~~~~~~~~~~~~ class A feature f do Current.item (1) := 2 end item (i: INTEGER): INTEGER assign put do end put (v: INTEGER; i: INTEGER) do end end ~~~~~~~~~~~~~~~~~~~~~~~~~~ class B inherit A redefine item end feature item (i: INTEGER): INTEGER do end end ~~~~~~~~~~~~~~~~~~~~~~~~~~
Problem Report Interactions