PR# 19825 Misleading error message for `@foo`

Problem Report Summary
Submitter: gobobe
Category: Compiler
Priority: Low
Date: 2021/12/29
Class: Bug
Severity: Non-critical
Number: 19825
Release: 21.11
Confidential: No
Status: Open
Responsible:
Environment: win
Synopsis: Misleading error message for `@foo`

Description
When compiling this code:

~~~~~~~~~~~~~~~~~~
	f
		local
			foo: INTEGER
		do
			⟳ bar: <<1, 2>> ¦ @foo.do_nothing ⟲
		end
~~~~~~~~~~~~~~~~~~

we get this error message:

~~~~~~~~~~~~~~~~~~
Unknown identifier `foo'.

Error code: VEEN

Error: unknown identifier.
What to do: make sure that identifier, if needed, is final name of
  feature of class, or local entity or formal argument of routine.

Class: AA
Feature: f
Identifier: foo
Line: 50
      do
->      ⟳ bar: <<1, 2>> ¦ @foo.do_nothing ⟲
      end				
~~~~~~~~~~~~~~~~~~

This is misleading because `foo` is the name of a local variable. Instead of a VEEN error, I think that we should add a third clause to VOIT (or introduce a new validity code) indicating that `foo` is not the name of an iteration item or it is used outside of its scope.

--
Eric Bezault
To Reproduce

										
Problem Report Interactions