[nem-bug] [Nemerle 0000642]: Error if list declared without
initialisation
feedback at nemerle.org
feedback at nemerle.org
Wed May 3 13:24:19 CEST 2006
A NOTE has been added to this issue.
======================================================================
<http://nemerle.org/bugs/view.php?id=642>
======================================================================
Reported By: VladD2
Assigned To: nazgul
======================================================================
Project: Nemerle
Issue ID: 642
Category: Compiler
Reproducibility: always
Severity: minor
Priority: normal
Status: resolved
Resolution: fixed
Fixed in Version:
======================================================================
Date Submitted: 04-01-2006 19:09 CEST
Last Modified: 05-03-2006 13:24 CEST
======================================================================
Summary: Error if list declared without initialisation
Description:
Error reported for this code:
mutable seq : list[int];
seq = [3];
WriteLine(seq.Head);
Error message:
test-016.n:8:20:8:23: error: parse error near identifier `int': unexpected
end of token sequence
test-016.n:8:20:8:23: error: expected assignment operator =
======================================================================
----------------------------------------------------------------------
nazgul - 04-05-06 21:12
----------------------------------------------------------------------
BTW, this is our design from the beginning. We do not want any
uninitialized local variable flying around. Usually you can just do
mutable seq = null;
seq = [3];
it will work fine. And as for value types, you can always use their
parameterless constructor:
mutable x = int();
x = 4;
I'm against, but maybe we should change this design - it creates
additional problems, because we must then perform complex flow control to
prevent usage of uninitialized variables.
----------------------------------------------------------------------
nazgul - 05-03-06 13:22
----------------------------------------------------------------------
Fixed on trunk (r6217).
We decided to use the simplest approach - we now allow lack of initializer
when declaring mutable variables, but we generate the "DefaultValue(T)"
expression. Interesting point is that generated IL looks identical :)
----------------------------------------------------------------------
nazgul - 05-03-06 13:24
----------------------------------------------------------------------
Also, in Nemerle it is now even more convenient to use:
mutable a,b,c,d;
a = 1;
b = "a";
c = 32.3;
d = System.DataTime.Now;
while in C#:
int a;
string b;
double c;
System.DateTime d;
a = 1;
b = "a";
c = 32.3;
d = System.DataTime.Now;
Issue History
Date Modified Username Field Change
======================================================================
04-01-06 19:09 VladD2 New Issue
04-05-06 21:12 nazgul Note Added: 0001163
05-03-06 13:22 nazgul Status new => resolved
05-03-06 13:22 nazgul Resolution open => fixed
05-03-06 13:22 nazgul Assigned To => nazgul
05-03-06 13:22 nazgul Note Added: 0001219
05-03-06 13:22 nazgul Description Updated
05-03-06 13:24 nazgul Note Added: 0001220
======================================================================
More information about the bugs
mailing list