[svn] r6893: nemerle/trunk/ncc/hierarchy/ClassMembers.n
VladD2
svnadmin at nemerle.org
Wed Nov 15 03:20:48 CET 2006
Log:
Add diagnostics messages.
Author: VladD2
Date: Wed Nov 15 03:20:47 2006
New Revision: 6893
Modified:
nemerle/trunk/ncc/hierarchy/ClassMembers.n
Modified: nemerle/trunk/ncc/hierarchy/ClassMembers.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/ClassMembers.n (original)
+++ nemerle/trunk/ncc/hierarchy/ClassMembers.n Wed Nov 15 03:20:47 2006
@@ -29,6 +29,7 @@
using Nemerle.Collections;
using Nemerle.Utility;
using Nemerle.Compiler.Typedtree;
+using System.Diagnostics;
using SCG = System.Collections.Generic;
using SR = System.Reflection;
@@ -773,6 +774,8 @@
mutable _bodyTokens : Token.BracesGroup;
+ //mutable _indent : string = "";
+
/// The method body tokens.
/// Note: For call this method you must implement method
/// PreParseMethodBody in a subtype.
@@ -780,14 +783,18 @@
{
get
{
+ //Trace.WriteLine($"$_indent>>>> ##### BodyTokens ($Name)!");
System.Diagnostics.Trace.Assert(!(Attributes %&& NemerleAttributes.Abstract));
System.Diagnostics.Trace.Assert(Manager.IsInCompletionMode);
when (_bodyTokens == null)
{
+ def indent = _indent; _indent += " ";
Manager.SetCompiletMessages (BodyMessages);
_bodyTokens = Manager.PreParseMethodBody (this);
+ _indent = indent;
}
+ //Trace.WriteLine($"$_indent<<<< ##### BodyTokens ($Name)!");
_bodyTokens
}
@@ -801,15 +808,19 @@
{
get
{
+ //Trace.WriteLine($"$_indent>>>> ##### BodyParsed ($Name)!");
System.Diagnostics.Trace.Assert(!(Attributes %&& NemerleAttributes.Abstract));
System.Diagnostics.Trace.Assert(Manager.IsInCompletionMode);
when (_bodyParsed == null)
{
+ def indent = _indent; _indent += " ";
Manager.SetCompiletMessages (BodyMessages);
_bodyParsed = MainParser.ParseFunctionBody (Env, Ast.header, BodyTokens);
fun_header.body = FunBody.Parsed (_bodyParsed);
+ _indent = indent;
}
+ //Trace.WriteLine($"$_indent<<<< ##### BodyParsed ($Name)!");
_bodyParsed
}
}
@@ -821,10 +832,12 @@
{
get
{
+ //Trace.WriteLine($"$_indent>>>> ##### BodyTyped ($Name)!");
System.Diagnostics.Trace.Assert(!(Attributes %&& NemerleAttributes.Abstract));
System.Diagnostics.Trace.Assert(Manager.IsInCompletionMode);
when (_bodyTyped == null)
{
+ def indent = _indent; _indent += " ";
Manager.SetCompiletMessages (BodyMessages);
try
{
@@ -833,8 +846,10 @@
_bodyTyped = (fun_header.body :> FunBody.Typed).expr;
}
finally { Manager.SetCompiletMessages (null); }
+ _indent = indent;
}
+ //Trace.WriteLine($"$_indent<<<< ##### BodyTyped ($Name)!");
_bodyTyped
}
}
@@ -875,8 +890,6 @@
def f = functionAst;
- _bodyTokens = f.Tokens;
-
when (LexerBase.IsOperator (name))
unless (IsStatic && IsPublic)
Message.Error ($"User defined operator '$(DeclaringType).$(name)'"
@@ -1068,6 +1081,9 @@
tenv = tenv',
loc = f.header.loc);
+ if (Manager.IsInCompletionMode)
+ _bodyTokens = f.Tokens;
+ else
fun_header.body = fun_body;
unless (check_variance_valid (fun_header.ret_type.Fix(), 1))
More information about the svn
mailing list