[Nemerle 0000259]: cannot strore result of a try block

0 views
Skip to first unread message

feed...@nemerle.org

unread,
Dec 9, 2008, 5:34:04 PM12/9/08
to nemerl...@googlegroups.com

The following issue has been RESOLVED.
======================================================================
<http://nemerle.org/bugs/view.php?id=259>
======================================================================
Reported By: nazgul
Assigned To: divan
======================================================================
Project: Nemerle
Issue ID: 259
Category: Compiler
Reproducibility: always
Severity: major
Priority: low
Status: resolved
Resolution: fixed
Fixed in Version:
======================================================================
Date Submitted: 09-13-2004 10:13 CEST
Last Modified: 12-09-2008 23:34 CET
======================================================================
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...
related to 0001072 Allow try inside expressions
======================================================================

----------------------------------------------------------------------
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]

----------------------------------------------------------------------
divan - 12-09-08 23:34
----------------------------------------------------------------------
Fixed on r8162.

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
05-06-08 22:20 divan Relationship added related to 0001072
12-09-08 23:34 divan Note Added: 0002146
12-09-08 23:34 divan Assigned To => divan
12-09-08 23:34 divan Status confirmed => resolved
12-09-08 23:34 divan Resolution open => fixed
12-09-08 23:34 divan Description Updated
======================================================================

Reply all
Reply to author
Forward
0 new messages