Nice/src/bossa/syntax typecheck.nice,1.126,1.127 return.nice,1.4,1.5 enum.nice,1.19,1.20

Daniel Bonniot <[email protected]>
Newsgroups gmane.comp.lang.nice.cvs
Message-ID <[email protected]>
Update of /cvsroot/nice/Nice/src/bossa/syntax
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18310/src/bossa/syntax

Modified Files:
	typecheck.nice return.nice enum.nice 
Log Message:
Allow value returns in void methods. We don't need to distinguish between
real and "fake" (sugared) returns.


Index: return.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/return.nice,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** return.nice	1 Dec 2004 02:00:32 -0000	1.4
--- return.nice	7 Mar 2005 17:10:51 -0000	1.5
***************
*** 22,26 ****
  {
    Expression value;
-   boolean fake = false;
  
    mlsub.typing.Polytype returnType()
--- 22,25 ----
***************
*** 61,77 ****
  public Statement createReturnStmt(?Expression value)
  {
-   return createReturnStmt(value, false);
- }
- 
- /**
-    @param fake  This return was not explicitely written, but is the result
-                 of syntactic sugar.
- */
- public Statement createReturnStmt(?Expression value, boolean fake)
- {
    if (value == null)
      return new VoidReturnStmt();
  
!   let res = new ReturnStmt(value: value, fake: fake);
    res.setLocation(value.location());
    return res;
--- 60,67 ----
  public Statement createReturnStmt(?Expression value)
  {
    if (value == null)
      return new VoidReturnStmt();
  
!   let res = new ReturnStmt(value: value);
    res.setLocation(value.location());
    return res;

Index: enum.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/enum.nice,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** enum.nice	6 Mar 2005 01:34:26 -0000	1.19
--- enum.nice	7 Mar 2005 17:10:51 -0000	1.20
***************
*** 82,86 ****
      globalDefs.add(createMethodBodyDefinition(impl, new LocatedString("family"),
  	null, new LinkedList(), createReturnStmt(createLiteralArrayExp(
! 	elements.map(createIdentExp)), true)));
  
    //generate the prettyprint string
--- 82,86 ----
      globalDefs.add(createMethodBodyDefinition(impl, new LocatedString("family"),
  	null, new LinkedList(), createReturnStmt(createLiteralArrayExp(
! 	elements.map(createIdentExp)))));
  
    //generate the prettyprint string

Index: typecheck.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/typecheck.nice,v
retrieving revision 1.126
retrieving revision 1.127
diff -C2 -d -r1.126 -r1.127
*** typecheck.nice	7 Mar 2005 08:16:53 -0000	1.126
--- typecheck.nice	7 Mar 2005 17:10:50 -0000	1.127
***************
*** 914,923 ****
      r.value = r.value.noOverloading();
    else
!     {
!       if (! r.fake && nice.tools.typing.Types.isVoid(expectedType))
! 	throw bossa.util.User.error(r, "Cannot return a value here");
! 	  
!       r.value = r.value.resolveOverloading(new mlsub.typing.Polytype(expectedType));
!     }
  
    try { typecheck(r.value); }
--- 914,918 ----
      r.value = r.value.noOverloading();
    else
!     r.value = r.value.resolveOverloading(new mlsub.typing.Polytype(expectedType));
  
    try { typecheck(r.value); }
***************
*** 925,929 ****
    
    try{
!     if (! (r.fake && expectedType != null && nice.tools.typing.Types.isVoid(expectedType)))
        function.checkReturnedType(r.returnType());
    }
--- 920,924 ----
    
    try{
!     if (! (expectedType != null && nice.tools.typing.Types.isVoid(expectedType)))
        function.checkReturnedType(r.returnType());
    }



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.