[svn] r6331: nemerle/trunk/ncc: STATELESS-TODO passes.n
typing/StaticTyVar.n typing/Typer-DelayedTyping.n ...
malekith
svnadmin at nemerle.org
Wed May 24 20:49:08 CEST 2006
Log:
A few static deaths.
Author: malekith
Date: Wed May 24 20:49:04 2006
New Revision: 6331
Modified:
nemerle/trunk/ncc/STATELESS-TODO
nemerle/trunk/ncc/passes.n
nemerle/trunk/ncc/typing/StaticTyVar.n
nemerle/trunk/ncc/typing/Typer-DelayedTyping.n
nemerle/trunk/ncc/typing/Typer-OverloadSelection.n
nemerle/trunk/ncc/typing/Typer.n
Modified: nemerle/trunk/ncc/STATELESS-TODO
==============================================================================
--- nemerle/trunk/ncc/STATELESS-TODO (original)
+++ nemerle/trunk/ncc/STATELESS-TODO Wed May 24 20:49:04 2006
@@ -16,9 +16,5 @@
- TypesManagers.global_nr
- Location...
- LexerFile.store_comments
-- StaticTyVar.current_id
- TyVar...
-- Typer.DelayedTyping.current_id
-- Typer.OverloadSelection.better_type_cache
-- Typer.*_macro
Modified: nemerle/trunk/ncc/passes.n
==============================================================================
--- nemerle/trunk/ncc/passes.n (original)
+++ nemerle/trunk/ncc/passes.n Wed May 24 20:49:04 2006
@@ -56,6 +56,15 @@
mutable pb_killed : bool;
+ #region ,,static'' data from other modules
+ internal mutable StaticTyVarId : int;
+ internal mutable Typer_DT_Id : int;
+ internal Typer_BetterTypeCache : Hashtable [TypeInfo * TypeInfo, bool] = Hashtable ();
+ internal mutable Typer_checked_macro : NamespaceTree.Node;
+ internal mutable Typer_unchecked_macro : NamespaceTree.Node;
+ internal mutable Typer_yield_macro : NamespaceTree.Node;
+ #endregion
+
/// initialize pipelines with default values
public this (options : CompilationOptions)
{
Modified: nemerle/trunk/ncc/typing/StaticTyVar.n
==============================================================================
--- nemerle/trunk/ncc/typing/StaticTyVar.n (original)
+++ nemerle/trunk/ncc/typing/StaticTyVar.n Wed May 24 20:49:04 2006
@@ -98,18 +98,18 @@
{
Manager = man;
this.name = name;
- id = current_id;
- ++current_id;
+ id = Manager.StaticTyVarId;
+ ++Manager.StaticTyVarId;
}
private this (other : StaticTyVar)
{
this.name = other.name;
this.special = other.special;
- this.id = current_id;
this.Manager = other.Manager;
- ++current_id;
+ id = Manager.StaticTyVarId;
+ ++Manager.StaticTyVarId;
}
public this (man : ManagerClass, name : string, gtype : System.Type) {
@@ -260,7 +260,5 @@
internal mutable current_type : TypeInfo = null;
internal mutable current_method : IMethod = null;
-
- static mutable current_id : int;
}
}
Modified: nemerle/trunk/ncc/typing/Typer-DelayedTyping.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer-DelayedTyping.n (original)
+++ nemerle/trunk/ncc/typing/Typer-DelayedTyping.n Wed May 24 20:49:04 2006
@@ -81,7 +81,6 @@
local_context : LocalContext;
expected : TyVar;
mutable generic_specifier : list [TyVar];
- static mutable current_id : int;
[Record]
public variant Kind
@@ -188,8 +187,8 @@
{
typer = t;
local_context = t.local_context;
- current_id++;
- id = current_id;
+ Manager.Typer_DT_Id++;
+ id = Manager.Typer_DT_Id;
expected = e;
SetKind (k)
}
Modified: nemerle/trunk/ncc/typing/Typer-OverloadSelection.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer-OverloadSelection.n (original)
+++ nemerle/trunk/ncc/typing/Typer-OverloadSelection.n Wed May 24 20:49:04 2006
@@ -51,7 +51,6 @@
}
- static better_type_cache : Hashtable [TypeInfo * TypeInfo, bool] = Hashtable ();
IsBetterType (t1 : TyVar, t2 : TyVar) : bool
{
def real_check (t1, t2) {
@@ -102,6 +101,7 @@
real_check (t1, t2)
} else {
def ids = (tc1, tc2);
+ def better_type_cache = Manager.Typer_BetterTypeCache;
unless (better_type_cache.Contains (ids))
better_type_cache [ids] =
real_check (t1, t2) ||
Modified: nemerle/trunk/ncc/typing/Typer.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer.n (original)
+++ nemerle/trunk/ncc/typing/Typer.n Wed May 24 20:49:04 2006
@@ -2619,15 +2619,6 @@
List.Iter (binary, binary_operators.Add);
List.Iter (unary, unary_operators.Add);
-
- ManagerClass.Instance.OnInit += Clear;
- }
-
- static Clear () : void
- {
- better_type_cache.Clear ();
- checked_macro = null;
- unchecked_macro = null;
}
static IsOperator (name : string) : bool
@@ -3056,11 +3047,6 @@
#region Special macros
- static mutable checked_macro : NamespaceTree.Node;
- static mutable unchecked_macro : NamespaceTree.Node;
- static mutable yield_macro : NamespaceTree.Node;
-
-
TypeBlock (name : PT.Name, body : PT.PExpr, expected : TyVar) : TExpr
{
PushLocals ();
@@ -3096,24 +3082,24 @@
InterceptSpecialMacros (expr : PT.PExpr, expected : TyVar) : TExpr
{
- when (checked_macro == null) {
- checked_macro = Manager.NameTree.ExactPath (["Nemerle", "Core", "checked"]);
- unchecked_macro = Manager.NameTree.ExactPath (["Nemerle", "Core", "unchecked"]);
- yield_macro = Manager.NameTree.ExactPath (["Nemerle", "Core", "yield"]);
+ when (Manager.Typer_checked_macro == null) {
+ Manager.Typer_checked_macro = Manager.NameTree.ExactPath (["Nemerle", "Core", "checked"]);
+ Manager.Typer_unchecked_macro = Manager.NameTree.ExactPath (["Nemerle", "Core", "unchecked"]);
+ Manager.Typer_yield_macro = Manager.NameTree.ExactPath (["Nemerle", "Core", "yield"]);
}
match (expr) {
| PT.PExpr.MacroCall (_, ns, [PT.SyntaxElement.Expression (expr)]) =>
- if (ns.Equals (checked_macro) ||
- ns.Equals (unchecked_macro)) {
+ if (ns.Equals (Manager.Typer_checked_macro) ||
+ ns.Equals (Manager.Typer_unchecked_macro)) {
PushLocals ();
try {
- local_context = local_context.WithChecked (ns.Equals (checked_macro));
+ local_context = local_context.WithChecked (ns.Equals (Manager.Typer_checked_macro));
TypeExpr (expr, expected);
} finally {
PopLocals ();
}
- } else if (ns.Equals (yield_macro)) {
+ } else if (ns.Equals (Manager.Typer_yield_macro)) {
when (! inside_yielding_function) {
_ = GetYieldType ();
log (TYPING, "throwing STY");
More information about the svn
mailing list