[svn] r6067: nemerle/trunk/ncc: testsuite/negative/yield-delayed.n
typing/Typer.n typing/Typer2.n
malekith
svnadmin at nemerle.org
Fri Jan 20 20:08:39 CET 2006
Log:
Run delayed typing after typing function using yield.
Author: malekith
Date: Fri Jan 20 20:08:38 2006
New Revision: 6067
Added:
nemerle/trunk/ncc/testsuite/negative/yield-delayed.n
Modified:
nemerle/trunk/ncc/typing/Typer.n
nemerle/trunk/ncc/typing/Typer2.n
Added: nemerle/trunk/ncc/testsuite/negative/yield-delayed.n
==============================================================================
--- (empty file)
+++ nemerle/trunk/ncc/testsuite/negative/yield-delayed.n Fri Jan 20 20:08:38 2006
@@ -0,0 +1,7 @@
+#pragma indent
+
+public class Term
+ public GetEnumerator () : System.Collections.Generic.IEnumerator [object]
+ _ = fun (t, m) { t.foobar } // E: typing fails on accessing member
+ yield null
+
Modified: nemerle/trunk/ncc/typing/Typer.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer.n (original)
+++ nemerle/trunk/ncc/typing/Typer.n Fri Jan 20 20:08:38 2006
@@ -151,8 +151,13 @@
put_in_error_mode ();
m.Body = WrapYieldingFunction (m.Body);
inside_yielding_function = true;
- when (errcnt == Message.ErrorCount)
+ when (errcnt == Message.ErrorCount) {
+ assert (solver.IsTopLevel);
+ solver.dt_store = Map ();
RunTyper ();
+ }
+ when (errcnt == Message.ErrorCount)
+ RunDelayedTypings ();
when (errcnt == Message.ErrorCount) {
RunSecondPass (m);
MaybeDumpTypedTree ();
Modified: nemerle/trunk/ncc/typing/Typer2.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer2.n (original)
+++ nemerle/trunk/ncc/typing/Typer2.n Fri Jan 20 20:08:38 2006
@@ -192,8 +192,7 @@
match (dt.DtKind) {
| Typer.DelayedTyping.Kind.Resolved (expr) =>
Unfold (expr)
- | _ => assert (false)
- // TExpr.Error ()
+ | _ => Util.ice ($ "unresolved expression: $dt");
}
| TExpr.TypeConversion =>
PushConversionDown (expr)
More information about the svn
mailing list