// (C) 2001 Ximian, Inc. http://www.ximian.com
//
+#if !FULL_AOT_RUNTIME
using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.InteropServices;
namespace System.Reflection.Emit {
-#if NET_2_0
[ComVisible (true)]
[ComDefaultInterface (typeof (_SignatureHelper))]
-#endif
[ClassInterface (ClassInterfaceType.None)]
+ [StructLayout (LayoutKind.Sequential)]
public sealed class SignatureHelper : _SignatureHelper {
internal enum SignatureHelperType {
HELPER_FIELD,
return new SignatureHelper ((ModuleBuilder) mod, SignatureHelperType.HELPER_LOCAL);
}
-#if NET_2_0
public static SignatureHelper GetLocalVarSigHelper ()
{
return new SignatureHelper (null, SignatureHelperType.HELPER_LOCAL);
{
return GetMethodSigHelper (null, CallingConventions.Standard, unmanagedCallingConvention, returnType, null);
}
-#endif
public static SignatureHelper GetMethodSigHelper (Module mod, CallingConventions callingConvention, Type returnType)
{
{
return GetMethodSigHelper (mod, CallingConventions.Standard, (CallingConvention)0, returnType, parameterTypes);
}
+
[MonoTODO("Not implemented")]
public static SignatureHelper GetPropertySigHelper (Module mod, Type returnType, Type[] parameterTypes)
{
throw new NotImplementedException ();
}
+ [MonoTODO("Not implemented")]
+ public static SignatureHelper GetPropertySigHelper (Module mod, Type returnType,
+ Type [] requiredReturnTypeCustomModifiers,
+ Type [] optionalReturnTypeCustomModifiers,
+ Type [] parameterTypes,
+ Type [] [] requiredParameterTypeCustomModifiers,
+ Type [] [] optionalParameterTypeCustomModifiers)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO("Not implemented")]
+ public static SignatureHelper GetPropertySigHelper (Module mod,
+ CallingConventions callingConvention,
+ Type returnType,
+ Type [] requiredReturnTypeCustomModifiers,
+ Type [] optionalReturnTypeCustomModifiers,
+ Type [] parameterTypes,
+ Type [] [] requiredParameterTypeCustomModifiers,
+ Type [] [] optionalParameterTypeCustomModifiers)
+ {
+ throw new NotImplementedException ();
+ }
+
//
// Grows the given array, and returns the index where the element
// was added
}
}
-#if NET_2_0
//
// Appends the given type array @t into the @array passed at
// position @pos. If there is no array, it gets created
AppendArrayAt (ref modopts, optionalCustomModifiers, p);
}
- [MonoTODO("Not implemented")]
- public static SignatureHelper GetPropertySigHelper (Module mod, Type returnType,
- Type [] requiredReturnTypeCustomModifiers,
- Type [] optionalReturnTypeCustomModifiers,
- Type [] parameterTypes,
- Type [] [] requiredParameterTypeCustomModifiers,
- Type [] [] optionalParameterTypeCustomModifiers)
- {
- throw new NotImplementedException ();
- }
-#endif
-
public void AddArgument (Type clsArgument)
{
if (clsArgument == null)
if (returnType == null)
returnType = typeof (void);
+ if (returnType.IsUserType)
+ throw new NotSupportedException ("User defined subclasses of System.Type are not yet supported.");
+ if (parameters != null) {
+ for (int i = 0; i < parameters.Length; ++i)
+ if (parameters [i].IsUserType)
+ throw new NotSupportedException ("User defined subclasses of System.Type are not yet supported.");
+
+ }
+
SignatureHelper helper =
new SignatureHelper ((ModuleBuilder)mod, SignatureHelperType.HELPER_METHOD);
helper.returnType = returnType;
}
}
}
+#endif