[nem-bug] [Nemerle 0000752]: ref parametrs bug

feedback at nemerle.org feedback at nemerle.org
Sun Sep 10 11:56:02 CEST 2006


The following issue has been RESOLVED.
======================================================================
<http://nemerle.org/bugs/view.php?id=752> 
======================================================================
Reported By:                VladD2
Assigned To:                malekith
======================================================================
Project:                    Nemerle
Issue ID:                   752
Category:                   Compiler
Reproducibility:            always
Severity:                   feature
Priority:                   normal
Status:                     resolved
Resolution:                 fixed
Fixed in Version:           
======================================================================
Date Submitted:             09-10-2006 04:29 CEST
Last Modified:              09-10-2006 11:56 CEST
======================================================================
Summary:                    ref parametrs bug
Description: 
using System.Console;

class C
{
    public static Method(i : ref int) : int
    {
        i = i + 1;
        i
    }
}

def MM(i : ref int) : int
{
    i = i + 1;
    i
}

mutable x = 5;

WriteLine(C.Method(ref x));
WriteLine(MM(ref x));

=================================================
print:
Main.n(12,1,12,26): error : nested ref/out type found
Main.n(14,5,14,14): error : needed a writable location for assignment
target, got a reference to local symbol `a function parameter i', which is
read-only
Main.n(14,9,14,14): error : in argument http://nemerle.org/bugs/view.php?id=1 of
+.s, needed a int, got void:
void is not a subtype of int
Main.n(12,1,12,26): error : expected int, got void in function return
type: void is not a subtype of int
Main.n(21,11,21,13): error : wrong number of parameters in call, needed 0,
got 1

======================================================================

----------------------------------------------------------------------
 malekith - 09-10-06 09:12 
----------------------------------------------------------------------
We don't support ref/out parameters for local functions. We theoretically
could do that for functions that are not first class.

For functional values it is impossible, because you cannot have a generic
type like Func[ref int,int] (and this is BTW what the error message
referrs to).

Another problem is that inferring types for them is not going to be
simple.

----------------------------------------------------------------------
 VladD2 - 09-10-06 10:08 
----------------------------------------------------------------------
> We don't support ref/out parameters for local functions. We theoretically
could do that for functions that are not first class

Then it is necessary to change the error message. This message is ugly.
Ncc must say something such "Local functions not support ref/uot
parametrs."

----------------------------------------------------------------------
 malekith - 09-10-06 11:56 
----------------------------------------------------------------------
A better error message is now printed (r6641).

Issue History
Date Modified  Username       Field                    Change              
======================================================================
09-10-06 04:29 VladD2         New Issue                                    
09-10-06 07:27 aleksey        Issue Monitored: aleksey                     
09-10-06 09:11 malekith       Severity                 minor => feature    
09-10-06 09:11 malekith       Status                   new => acknowledged 
09-10-06 09:11 malekith       Description Updated                          
09-10-06 09:11 malekith       Additional Information Updated                    
09-10-06 09:12 malekith       Note Added: 0001445                          
09-10-06 09:12 malekith       Description Updated                          
09-10-06 09:12 malekith       Additional Information Updated                    
09-10-06 10:08 VladD2         Note Added: 0001446                          
09-10-06 11:56 malekith       Status                   acknowledged => resolved
09-10-06 11:56 malekith       Resolution               open => fixed       
09-10-06 11:56 malekith       Assigned To               => malekith        
09-10-06 11:56 malekith       Note Added: 0001447                          
======================================================================




More information about the bugs mailing list