--* From postmaster%watson.vnet.ibm.com@yktvmv.watson.ibm.com  Wed Dec 22 10:29:03 1993
--* Received: from yktvmv.watson.ibm.com by leonardo.watson.ibm.com (AIX 3.2/UCB 5.64/4.03)
--*           id AA25996; Wed, 22 Dec 1993 10:29:03 -0500
--* X-External-Networks: yes
--* Received: from watson.vnet.ibm.com by yktvmv.watson.ibm.com (IBM VM SMTP V2R3)
--*    with BSMTP id 5593; Wed, 22 Dec 93 10:35:21 EST
--* Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id <A.SANTAS.NOTE.YKTVMV.3259.Dec.22.10:05:21.-0500>
--*           for asbugs@watson; Wed, 22 Dec 93 10:35:21 -0500
--* Received: from bernina.ethz.ch by watson.ibm.com (IBM VM SMTP V2R3) with TCP;
--*    Wed, 22 Dec 93 10:05:20 EST
--* Received: from neptune by bernina.ethz.ch with SMTP inbound id <28162-0@bernina.ethz.ch>; Wed, 22 Dec 1993 16:05:13 +0100
--* From: Philip Santas <santas@inf.ethz.ch>
--* Received: from rutishauser.inf.ethz.ch (rutishauser-gw.inf.ethz.ch) by neptune id AA02408; Wed, 22 Dec 93 16:05:05 +0100
--* Date: Wed, 22 Dec 93 16:05:02 +0100
--* Message-Id: <9312221505.AA24187@rutishauser.inf.ethz.ch>
--* Received: from vinci.inf.ethz.ch.rutishauser by rutishauser.inf.ethz.ch id AA24187; Wed, 22 Dec 93 16:05:02 +0100
--* To: asbugs@watson.ibm.com
--* Subject: naming in fields confuses type inferencer
--* Cc: bronstei

--@ Fixed  by:  SSD   Mon Apr 18 15:07:44 1994 
--@ Tested by:  none 
--@ Summary:    Not a bug. A# does not disambiguate package calls based on the name of the operation being retrieved. 


Version:  A# version 33.0 for SPARC (debug version)
Severity: minor (program can be recoded)
Problem:  The type inferencer is confused when it handles
          fields in Categories, which although have the same
          name, they have different types (this should resolve
          the case).
          Legal code is rejected.
Comments: Same can happen in nested types too.
          Renaming the outer T, or defining the inner Category
          as a separate category (say, C1), removes the error.

Code:
  ---------recdef.as--------------------
  #include "aslib.as"
  C0: Category == with {t: BasicType};
  --C1: Category == with {
  --        T: C0;
  --        x: t$T };
  C:Category == with {
      T: with {
          T: C0;
          x: t$T }
  };
  ---------------------------------------

Errors:
"recdef.as", line 9: (Error) Have determined 0 possible types for the expression.
"recdef.as", line 9: (Error) 2 meanings for `T' in this context.

Philip

 
