[nem-bug] [Nemerle 0000259]: cannot strore result of a try block
feedback at nemerle.org
feedback at nemerle.org
Tue Sep 5 02:10:06 CEST 2006
A NOTE has been added to this issue.
======================================================================
<http://nemerle.org/bugs/view.php?id=259>
======================================================================
Reported By: nazgul
Assigned To:
======================================================================
Project: Nemerle
Issue ID: 259
Category: Compiler
Reproducibility: always
Severity: major
Priority: low
Status: confirmed
======================================================================
Date Submitted: 09-13-2004 10:13 CEST
Last Modified: 09-05-2006 02:10 CEST
======================================================================
Summary: cannot strore result of a try block
Description:
class B {
static Main () : void {
def an = System.Reflection.AssemblyName ();
an.Version =
try {
null
}
finally { }
}
}
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
has duplicate 0000739 Try block is not allowed inside express...
======================================================================
----------------------------------------------------------------------
malekith - 09-15-04 00:25
----------------------------------------------------------------------
I guess we can easily make a special case for expr = try {...}. But in
general supporting try{} inside expressions will be hard (local functions
generations, lots of special cases and so on) and rarely used, so I guess
there is littele point supporting this. I guess we can easly check if the
stack is empty uppon try emission and if not -- emit an error message.
----------------------------------------------------------------------
malekith - 09-17-04 23:49
----------------------------------------------------------------------
Error message is emited now, instead of bogus IL, but the location of error
message is broken. I guess, the proper solution is to mark locations in
CG_expr tree, which would be nice to have for debugging anyway.
We could also try to make x.y = try { .. } work (def x = try {} and x =
try{} already does). This is simple transformation, but I'm not sure how
much need is there for it.
----------------------------------------------------------------------
malekith - 10-04-04 21:41
----------------------------------------------------------------------
The error location is proper now. This feature maybe would be nice to have,
but in no case it is a must-have. Thus priority lowered.
----------------------------------------------------------------------
malekith - 09-05-06 02:10
----------------------------------------------------------------------
This is somewhat irritating with list comprehensions, like in:
def l = [1,2] : IEnumerable[int]
def q = $[2*x | x in l]
Issue History
Date Modified Username Field Change
======================================================================
09-13-04 10:13 nazgul New Issue
09-15-04 00:25 malekith Note Added: 0000391
09-17-04 23:49 malekith Note Added: 0000408
09-17-04 23:49 malekith Priority urgent => high
09-17-04 23:49 malekith Severity crash => major
09-17-04 23:49 malekith Status new => confirmed
10-04-04 21:41 malekith Note Added: 0000459
10-04-04 21:41 malekith Priority high => low
10-04-04 21:41 malekith Description Updated
08-23-05 18:56 malekith Summary Wrong IL is generated
when stroring result of try block => cannot strore result of a try block
08-23-05 18:56 malekith Description Updated
08-14-06 21:58 nazgul Relationship added has duplicate 0000739
09-05-06 02:10 malekith Note Added: 0001440
======================================================================
More information about the bugs
mailing list