[svn] r6115: nemerle/trunk/ncc: generation/ILEmitter.n
typing/OverloadPossibility.n
nazgul
svnadmin at nemerle.org
Sat Feb 11 17:57:14 CET 2006
Log:
Avoid callvirt for this.not_virtual_method()
Author: nazgul
Date: Sat Feb 11 17:57:09 2006
New Revision: 6115
Modified:
nemerle/trunk/ncc/generation/ILEmitter.n
nemerle/trunk/ncc/typing/OverloadPossibility.n
Modified: nemerle/trunk/ncc/generation/ILEmitter.n
==============================================================================
--- nemerle/trunk/ncc/generation/ILEmitter.n (original)
+++ nemerle/trunk/ncc/generation/ILEmitter.n Sat Feb 11 17:57:09 2006
@@ -1006,7 +1006,7 @@
_ilg.Emit (OpCodes.Tailcall);
}
_ilg.Emit (OpCodes.Constrained, base_object.SystemType);
- emit_method_call (expr, is_value_type || notvirt, method_inf);
+ emit_method_call (expr, false, method_inf); // constrained always need callvirt
when (is_tail)
_ilg.Emit (OpCodes.Ret);
} else
Modified: nemerle/trunk/ncc/typing/OverloadPossibility.n
==============================================================================
--- nemerle/trunk/ncc/typing/OverloadPossibility.n (original)
+++ nemerle/trunk/ncc/typing/OverloadPossibility.n Sat Feb 11 17:57:09 2006
@@ -133,7 +133,7 @@
TExpr.StaticRef (from, meth, method_typarms)
}
else
- TExpr.MethodRef (expr, meth, method_typarms, notvirtual = false)
+ TExpr.MethodRef (expr, meth, method_typarms, notvirtual = expr is TExpr.This && !(meth.Attributes %&& NemerleAttributes.Virtual))
| ev is IEvent =>
if (ev.IsStatic)
More information about the svn
mailing list