[svn] r7626: nemerle/trunk/ncc: testsuite/positive/infer.n
typing/Typer.n
malekith
svnadmin at nemerle.org
Thu Apr 26 21:11:13 CEST 2007
Log:
Run delayed typing also after typing field initializers.
Author: malekith
Date: Thu Apr 26 21:11:11 2007
New Revision: 7626
Modified:
nemerle/trunk/ncc/testsuite/positive/infer.n
nemerle/trunk/ncc/typing/Typer.n
Modified: nemerle/trunk/ncc/testsuite/positive/infer.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/infer.n (original)
+++ nemerle/trunk/ncc/testsuite/positive/infer.n Thu Apr 26 21:11:11 2007
@@ -99,6 +99,11 @@
}
+class BugWithFieldInitializers {
+ mangling_exceptions : Hashtable [string, object] = [
+ "!="
+ ].FoldLeft (Hashtable (), fun (s, a) { a.Add (s, null); a });
+}
namespace DelayedTyping {
Modified: nemerle/trunk/ncc/typing/Typer.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer.n (original)
+++ nemerle/trunk/ncc/typing/Typer.n Thu Apr 26 21:11:11 2007
@@ -155,17 +155,17 @@
def errcnt = Message.ErrorCount;
RunTyper ();
- MaybeDumpTypedTree ();
+ MaybeDumpTypedTree ("after typer");
typer_done = true;
assert (Manager.IsIntelliSenseMode || !messenger.SeenError);
messenger.InErrorMode = true;
RunDelayedTypings ();
- MaybeDumpTypedTree ();
+ MaybeDumpTypedTree ("after delayed typings");
when (errcnt == Message.ErrorCount) {
RunSecondPass (m);
- MaybeDumpTypedTree ();
+ MaybeDumpTypedTree ("after second pass");
}
} catch {
| e is RestartInErrorMode =>
@@ -196,7 +196,7 @@
RunDelayedTypings ();
when (errcnt == Message.ErrorCount) {
RunSecondPass (m);
- MaybeDumpTypedTree ();
+ MaybeDumpTypedTree ("after second pass [yield mode]");
}
}
})
@@ -263,12 +263,12 @@
current_method_builder
}
- MaybeDumpTypedTree () : void
+ MaybeDumpTypedTree (msg : string) : void
{
when (Manager.Options.ShouldDump (current_fun)) {
match (current_fun.body) {
| FunBody.Typed (expr) =>
- Message.Debug (expr.loc, $ "$current_type.$(current_fun.name) -> "
+ Message.Debug (expr.loc, $ "$msg: $current_type.$(current_fun.name) -> "
"$(current_fun.ret_type) : " +
PrettyPrint.SprintTyExpr (None (), expr) + "\n")
| _ => ()
@@ -349,6 +349,7 @@
TypeExpr (PT.PExpr.Sequence (current_type.init_list))
) :: [];
field_inits_typed = true;
+ RunDelayedTypings ();
}
def t2 = Typer2 (current_type, meth);
More information about the svn
mailing list