PR# 15139 VOMB(1) error in inspect "when" clause causes bogus VEVI error

Problem Report Summary
Submitter: prestoat2000
Category: Compiler
Priority: Medium
Date: 2008/12/10
Class: Bug
Severity: Non-critical
Number: 15139
Release: 6.3.76070
Confidential: No
Status: Closed
Responsible: alexk_es
Environment: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.8.1.9) Gecko/20071111 Firefox/2.0.0.9 Solaris 10 on SPARC
Synopsis: VOMB(1) error in inspect "when" clause causes bogus VEVI error

Description
A routine has a VOMB(1) error because the type of the expression in
a "when" clause does not match the inspect expression type.  When compiled
in void-safe mode, the compiler correctly detects the VOMB(1) but also
reports what appears to be a spurious VEVI error.

A similar routine with body

   if 1 then
       Result := "weasel"
   else
       Result := "stoat"
   end

does not elicit a VEVI error from the compiler.
To Reproduce
Compile with attached class and config file.  Compiler reports (report of VEVI
error seems to be spurious):

Error code: VOMB(1)
Error: incorrect type for inspect expression.
What to do: make sure that type is INTEGER, CHARACTER, NATURAL or a .NET enum.

Class: TEST
Feature: z
Type: STRING_8
Line: 19
      do
->      inspect "Stoat" when 1 then
          Result := "stoat"

-------------------------------------------------------------------------------

Error code: VEVI
Error: variable is not properly set.
What to do: ensure the variable is properly set by the corresponding
  setter instruction.

Class: TEST
Feature: z
Variable: Result
Line: 24
        end
->    end

Problem Report Interactions
From:alexk_es    Date:2009/01/10    Status: Closed    Download   
Fixed in rev#76639.

From:prestoat2000    Date:2008/12/18    Download   
Added eweasel test valid228 for this bug.

From:prestoat2000    Date:2008/12/10    Download   
Attachments for problem report #15139

Attachment: test.e     Size:220
Attachment: test.ecf     Size:1093