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