2004-02-27 Miguel de Icaza <miguel@ximian.com>
+ * expression.cs (Invocation.EmitCall): If the method is not
+ virtual, do not emit a CallVirt to it, use Call.
+
* typemanager.cs (GetFullNameSignature): Improve the method to
cope with ".ctor" and replace it with the type name.
* class.cs (ConstructorInitializer.Resolve): Now the method takes
as an argument the ConstructorBuilder where it is being defined,
to catch the recursive constructor invocations.
-
+
2004-02-26 Miguel de Icaza <miguel@ximian.com>
* iterators.cs (IteratorHandler.IsIEnumerator, IsIEnumerable): New
EmitArguments (ec, method, Arguments);
- if (is_static || struct_call || is_base){
+ if (is_static || struct_call || is_base || !method.IsVirtual){
if (method is MethodInfo) {
ig.Emit (OpCodes.Call, (MethodInfo) method);
} else
}
return ret;
}
+
+ public Expression TurnIntoConstant ()
+ {
+ //
+ // Should use something like the above attribute thing.
+ // It should return a subclass of Constant that just returns
+ // the computed value of the array
+ //
+ throw new Exception ("Does not support yet Turning array into a Constant");
+ }
}
/// <summary>