[svn] r6796: nemerle/trunk: macros/core.n ncc/parsing/ParseTree.n
nazgul
svnadmin at nemerle.org
Thu Oct 26 15:22:58 CEST 2006
Log:
Do not use ManagerClass.Instance directly. Some api improvements
Author: nazgul
Date: Thu Oct 26 15:22:57 2006
New Revision: 6796
Modified:
nemerle/trunk/macros/core.n
nemerle/trunk/ncc/parsing/ParseTree.n
Modified: nemerle/trunk/macros/core.n
==============================================================================
--- nemerle/trunk/macros/core.n (original)
+++ nemerle/trunk/macros/core.n Thu Oct 26 15:22:57 2006
@@ -735,15 +735,15 @@
macro DefineCTX (ctx) {
- <[ def $(ManagerClass.Instance.MacrosRegistry.GetImplicitCTXName () : name) = $ctx ]>
+ <[ def $(ImplicitCTX().Manager.MacrosRegistry.GetImplicitCTXName () : name) = $ctx ]>
}
macro ImplicitCTX () {
- <[ $(ManagerClass.Instance.MacrosRegistry.GetImplicitCTXName () : name) ]>
+ <[ $(ImplicitCTX().Manager.MacrosRegistry.GetImplicitCTXName () : name) ]>
}
macro Manager () {
- <[ $(ManagerClass.Instance.MacrosRegistry.GetImplicitCTXName () : name).Manager ]>
+ <[ $(ImplicitCTX().Manager.MacrosRegistry.GetImplicitCTXName () : name).Manager ]>
}
/** creates new symbol with given id and current global context */
@@ -1130,7 +1130,7 @@
Nemerle.MacroTargets.Method)]
macro NotImplemented (t : TypeBuilder, m : ParsedMethod) {
def ignores = List.Map (m.header.parms, fun (x : PT.Fun_parm) {
- <[ _ = $(x.name.GetName () : name) ]>
+ <[ _ = $(x.ReferencingExpr) ]>
});
def message = "Method `" + m.name.GetName ().Id + "' in type `" +
t.FullName + "' is not implemented yet.";
@@ -1147,12 +1147,12 @@
macro OverrideObjectEquals (t : TypeBuilder, m : ParsedMethod)
{
match (m.header.parms) {
- | [x] =>
+ | [_] =>
t.Define (<[ decl:
public override Equals (x : object) : bool
{
- if (typeof ($(x.ty)).IsInstanceOfType (x))
- this.$(m.header.name.GetName () : name) (x :> $(x.ty))
+ if (typeof (this).IsInstanceOfType (x))
+ this.$(m.header.name.GetName () : name) (x :> this)
else
false
}
@@ -1176,9 +1176,7 @@
}
]>);
- def parms = List.Map (m.header.parms, fun (x : PT.Fun_parm) {
- <[ $(x.name.GetName () : name) ]>
- });
+ def parms = m.header.ParametersReferences;
def newBody = Util.locate(m.Body.Location, <[
$this_expr . $(meth : name) ( .. $parms )
Modified: nemerle/trunk/ncc/parsing/ParseTree.n
==============================================================================
--- nemerle/trunk/ncc/parsing/ParseTree.n (original)
+++ nemerle/trunk/ncc/parsing/ParseTree.n Thu Oct 26 15:22:57 2006
@@ -422,6 +422,16 @@
}
}
+ public ReferencingExpr : PExpr {
+ get {
+ match (name) {
+ | HalfId (n)
+ | Name (n) => PExpr.Ref (this.Location, n)
+ | Expression (e) => e
+ }
+ }
+ }
+
public override ToString() : string
{
$"$(this.Name) : $ty"
@@ -462,6 +472,10 @@
this.typarms = typarms;
}
+ public ParametersReferences : list [PExpr] {
+ get { parms.Map (_.ReferencingExpr) }
+ }
+
public override ToString() : string
{
def parms = parms.ToString (", ");
More information about the svn
mailing list