[svn] r6281: nemerle/trunk/tools/nemerlish/eval.n
nazgul
svnadmin at nemerle.org
Sun May 14 21:20:24 CEST 2006
Log:
Do not create it reference for void expression
Author: nazgul
Date: Sun May 14 21:20:23 2006
New Revision: 6281
Modified:
nemerle/trunk/tools/nemerlish/eval.n
Modified: nemerle/trunk/tools/nemerlish/eval.n
==============================================================================
--- nemerle/trunk/tools/nemerlish/eval.n (original)
+++ nemerle/trunk/tools/nemerlish/eval.n Sun May 14 21:20:23 2006
@@ -350,8 +350,7 @@
| [SyntaxElement.Expression (expr)] =>
Evaluator.locals = [];
def l = ctx.GetLocals ().GetLocals ();
- def values = <[ $expr : System.Object ]> ::
- l.Fold ([], fun (n : Name, loc : LocalValue, acc) {
+ mutable values = l.Fold ([], fun (n : Name, loc : LocalValue, acc) {
match (n.ToString ()) {
| "it" => acc
| _ when loc.ValKind is LocalValue.Kind.BlockReturn => acc
@@ -362,8 +361,13 @@
<[ ($(n : name) : System.Object) ]> :: acc
}
});
- Evaluator.locals = (false, "it", PrettyPrint.TyVarToParseTree
- (ctx.TypeExpr (expr).Type)) :: Evaluator.locals;
+ def exprty = ctx.TypeExpr (expr).MType;
+ match (exprty) {
+ | MType.Void => ()
+ | _ =>
+ Evaluator.locals = (false, "it", PrettyPrint.TyVarToParseTree (exprty)) :: Evaluator.locals;
+ values ::= <[ $expr : System.Object ]>;
+ }
<[ [..$values] ]>
| _ => Util.ice ()
}
More information about the svn
mailing list