Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Pouliot <sebastien.pouliot@gmail.com>2019-05-28 15:39:39 +0300
committerAlexander Köplinger <alex.koeplinger@outlook.com>2019-05-28 15:39:38 +0300
commit9fb44af2fe45eef3d6d1033d5d1046453d230a50 (patch)
treee2d27e156b3a225a64bdf1fc3c649e1e3eec2b5f /mcs/class/referencesource
parentad03563fb46fbe07cf83bf42537190f1927a7e59 (diff)
[mscorlib] Ensure monotouch[_runtime] API are identical (#14665)
* [mscorlib] Ensure monotouch[_runtime] API are identical Ensure the API surface for `mscorlib.Core.dll` is identical between the `monotouch` and `monotouch_runtime` (used for REPL and the interpreter). This ensure code compiled against one will be fine when building against the other (e.g. avoiding linker errors). In practice this means: 1. Expose the API needed for `System.Reflection.Emit` in XI - throwing `PlatformNotSupportedException` **by default**; or - calling the mono runtime when the interpreter is enabled; 2. Do not expose additional, not supported, API (e.g. COM related) - `monotouch_runtime` configuration was built without `FULL_AOT_RUNTIME` and that brings some other stuff that is not AOT related Follow up to #14606 Existing diff Removed methods: ```csharp public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access); public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, System.Collections.Generic.IEnumerable<Reflection.Emit.CustomAttributeBuilder> assemblyAttributes); [Obsolete ("Declarative security for assembly level is no longer enforced")] public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, Security.Policy.Evidence evidence); public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir); public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, System.Collections.Generic.IEnumerable<Reflection.Emit.CustomAttributeBuilder> assemblyAttributes, Security.SecurityContextSource securityContextSource); [Obsolete ("Declarative security for assembly level is no longer enforced")] public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir, Security.Policy.Evidence evidence); [Obsolete ("Declarative security for assembly level is no longer enforced")] public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions); public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir, bool isSynchronized, System.Collections.Generic.IEnumerable<Reflection.Emit.CustomAttributeBuilder> assemblyAttributes); [Obsolete ("Declarative security for assembly level is no longer enforced")] public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, Security.Policy.Evidence evidence, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions); [Obsolete ("Declarative security for assembly level is no longer enforced")] public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions); [Obsolete ("Declarative security for assembly level is no longer enforced")] public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir, Security.Policy.Evidence evidence, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions); [Obsolete ("Declarative security for assembly level is no longer enforced")] public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir, Security.Policy.Evidence evidence, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions, bool isSynchronized); [Obsolete ("Declarative security for assembly level is no longer enforced")] public Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir, Security.Policy.Evidence evidence, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions, bool isSynchronized, System.Collections.Generic.IEnumerable<Reflection.Emit.CustomAttributeBuilder> assemblyAttributes); ``` Removed methods: ```csharp public virtual Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access); public virtual Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, Security.Policy.Evidence evidence); public virtual Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir); public virtual Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir, Security.Policy.Evidence evidence); public virtual Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions); public virtual Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, Security.Policy.Evidence evidence, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions); public virtual Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions); public virtual Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir, Security.Policy.Evidence evidence, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions); public virtual Reflection.Emit.AssemblyBuilder DefineDynamicAssembly (Reflection.AssemblyName name, Reflection.Emit.AssemblyBuilderAccess access, string dir, Security.Policy.Evidence evidence, Security.PermissionSet requiredPermissions, Security.PermissionSet optionalPermissions, Security.PermissionSet refusedPermissions, bool isSynchronized); ``` Added constructor: ```csharp public AssemblyBuilder (); ``` Removed properties: ```csharp public override string CodeBase { get; } public override System.Reflection.MethodInfo EntryPoint { get; } public override string EscapedCodeBase { get; } public override System.Security.Policy.Evidence Evidence { get; } public override string FullName { get; } public override bool GlobalAssemblyCache { get; } public override string ImageRuntimeVersion { get; } public override bool IsDynamic { get; } public override string Location { get; } public override System.Reflection.Module ManifestModule { get; } public override bool ReflectionOnly { get; } ``` Removed methods: ```csharp public void AddResourceFile (string name, string fileName); public void AddResourceFile (string name, string fileName, System.Reflection.ResourceAttributes attribute); public ModuleBuilder DefineDynamicModule (string name, bool emitSymbolInfo); public ModuleBuilder DefineDynamicModule (string name, string fileName); public ModuleBuilder DefineDynamicModule (string name, string fileName, bool emitSymbolInfo); public System.Resources.IResourceWriter DefineResource (string name, string description, string fileName); public System.Resources.IResourceWriter DefineResource (string name, string description, string fileName, System.Reflection.ResourceAttributes attribute); public void DefineUnmanagedResource (byte[] resource); public void DefineUnmanagedResource (string resourceFileName); public void DefineVersionInfoResource (); public void DefineVersionInfoResource (string product, string productVersion, string company, string copyright, string trademark); public override bool Equals (object obj); public override object[] GetCustomAttributes (bool inherit); public override object[] GetCustomAttributes (System.Type attributeType, bool inherit); public override System.Type[] GetExportedTypes (); public override System.IO.FileStream GetFile (string name); public override System.IO.FileStream[] GetFiles (bool getResourceModules); public override int GetHashCode (); public override System.Reflection.Module[] GetLoadedModules (bool getResourceModules); public override System.Reflection.ManifestResourceInfo GetManifestResourceInfo (string resourceName); public override string[] GetManifestResourceNames (); public override System.IO.Stream GetManifestResourceStream (string name); public override System.IO.Stream GetManifestResourceStream (System.Type type, string name); public override System.Reflection.Module GetModule (string name); public override System.Reflection.Module[] GetModules (bool getResourceModules); public override System.Reflection.AssemblyName GetName (bool copiedName); public override System.Reflection.AssemblyName[] GetReferencedAssemblies (); public override System.Reflection.Assembly GetSatelliteAssembly (System.Globalization.CultureInfo culture); public override System.Reflection.Assembly GetSatelliteAssembly (System.Globalization.CultureInfo culture, System.Version version); public override System.Type GetType (string name, bool throwOnError, bool ignoreCase); public override bool IsDefined (System.Type attributeType, bool inherit); public void Save (string assemblyFileName); public void Save (string assemblyFileName, System.Reflection.PortableExecutableKinds portableExecutableKind, System.Reflection.ImageFileMachine imageFileMachine); public void SetEntryPoint (System.Reflection.MethodInfo entryMethod, PEFileKinds fileKind); public override string ToString (); ``` Added constructor: ```csharp public ConstructorBuilder (); ``` Removed properties: ```csharp public override System.Reflection.CallingConventions CallingConvention { get; } public override System.Reflection.Module Module { get; } [Obsolete] public System.Type ReturnType { get; } ``` Removed methods: ```csharp public void AddDeclarativeSecurity (System.Security.Permissions.SecurityAction action, System.Security.PermissionSet pset); public void SetSymCustomAttribute (string name, byte[] data); public override string ToString (); ``` Removed property: ```csharp public override System.Reflection.Module Module { get; } ``` Added property: ```csharp public override System.Reflection.MethodImplAttributes MethodImplementationFlags { get; } ``` Removed methods: ```csharp public override System.Delegate CreateDelegate (System.Type delegateType); public override System.Delegate CreateDelegate (System.Type delegateType, object target); public override string ToString (); ``` Added properties: ```csharp public override bool IsByRefLike { get; } public override bool IsSZArray { get; } public override bool IsVariableBoundArray { get; } ``` Removed method: ```csharp public override bool IsAssignableFrom (System.Reflection.TypeInfo typeInfo); ``` Added constructor: ```csharp public EventBuilder (); ``` Removed properties: ```csharp public override int MetadataToken { get; } public override System.Reflection.Module Module { get; } ``` Removed method: ```csharp [Obsolete ("An alternate API is available: Emit the MarshalAs custom attribute instead.")] public void SetMarshal (UnmanagedMarshal unmanagedMarshal); ``` Added properties: ```csharp public override bool IsByRefLike { get; } public override bool IsConstructedGenericType { get; } public override bool IsSZArray { get; } public override bool IsTypeDefinition { get; } public override bool IsVariableBoundArray { get; } ``` Removed methods: ```csharp public override System.Type[] GetGenericParameterConstraints (); public override bool IsAssignableFrom (System.Reflection.TypeInfo typeInfo); public override bool IsInstanceOfType (object o); ``` Modified properties: ```diff -public virtual int ILOffset { get; } +public int ILOffset { get; } ``` Removed method: ```csharp public virtual void MarkSequencePoint (System.Diagnostics.SymbolStore.ISymbolDocumentWriter document, int startLine, int startColumn, int endLine, int endColumn); ``` Added property: ```csharp public override bool IsConstructedGenericMethod { get; } ``` Removed methods: ```csharp public void AddDeclarativeSecurity (System.Security.Permissions.SecurityAction action, System.Security.PermissionSet pset); [Obsolete ("An alternate API is available: Emit the MarshalAs custom attribute instead.")] public void SetMarshal (UnmanagedMarshal unmanagedMarshal); public void SetSymCustomAttribute (string name, byte[] data); ``` Removed properties: ```csharp public override int MetadataToken { get; } public override System.Guid ModuleVersionId { get; } public override string ScopeName { get; } ``` Removed methods: ```csharp public System.Diagnostics.SymbolStore.ISymbolDocumentWriter DefineDocument (string url, System.Guid language, System.Guid languageVendor, System.Guid documentType); public void DefineManifestResource (string name, System.IO.Stream stream, System.Reflection.ResourceAttributes attribute); public System.Resources.IResourceWriter DefineResource (string name, string description); public System.Resources.IResourceWriter DefineResource (string name, string description, System.Reflection.ResourceAttributes attribute); public void DefineUnmanagedResource (byte[] resource); public void DefineUnmanagedResource (string resourceFileName); public override object[] GetCustomAttributes (bool inherit); public override object[] GetCustomAttributes (System.Type attributeType, bool inherit); public override System.Reflection.FieldInfo GetField (string name, System.Reflection.BindingFlags bindingAttr); public override System.Reflection.FieldInfo[] GetFields (System.Reflection.BindingFlags bindingFlags); protected override System.Reflection.MethodInfo GetMethodImpl (string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); public override System.Reflection.MethodInfo[] GetMethods (System.Reflection.BindingFlags bindingFlags); public System.Diagnostics.SymbolStore.ISymbolWriter GetSymWriter (); public override System.Type GetType (string className); public override System.Type GetType (string className, bool ignoreCase); public override System.Type GetType (string className, bool throwOnError, bool ignoreCase); public override System.Type[] GetTypes (); public override bool IsDefined (System.Type attributeType, bool inherit); public override bool IsResource (); public override System.Reflection.FieldInfo ResolveField (int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments); public override System.Reflection.MemberInfo ResolveMember (int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments); public override System.Reflection.MethodBase ResolveMethod (int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments); public override byte[] ResolveSignature (int metadataToken); public override string ResolveString (int metadataToken); public override System.Type ResolveType (int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments); public void SetSymCustomAttribute (string name, byte[] data); ``` Modified properties: ```diff -public virtual int Attributes { get; } +public int Attributes { get; } -public virtual string Name { get; } +public string Name { get; } -public virtual int Position { get; } +public int Position { get; } ``` Removed method: ```csharp [Obsolete ("An alternate API is available: Emit the MarshalAs custom attribute instead.")] public virtual void SetMarshal (UnmanagedMarshal unmanagedMarshal); ``` Removed interface: ```csharp System.Runtime.InteropServices._SignatureHelper ``` Removed methods: ```csharp public override bool Equals (object obj); public override int GetHashCode (); public override string ToString (); ``` Removed property: ```csharp public override bool ContainsGenericParameters { get; } ``` Added properties: ```csharp public override bool IsByRefLike { get; } public override bool IsSZArray { get; } public override bool IsSecurityCritical { get; } public override bool IsSecuritySafeCritical { get; } public override bool IsSecurityTransparent { get; } public override bool IsVariableBoundArray { get; } ``` Removed methods: ```csharp public void AddDeclarativeSecurity (System.Security.Permissions.SecurityAction action, System.Security.PermissionSet pset); public override bool IsAssignableFrom (System.Reflection.TypeInfo typeInfo); protected override bool IsValueTypeImpl (); ``` Removed methods: ```csharp public static object GetActiveObject (string progID); public static IntPtr GetComInterfaceForObjectInContext (object o, System.Type t); public static int GetComSlotForMethodInfo (System.Reflection.MemberInfo m); public static int GetEndComSlot (System.Type t); public static IntPtr GetExceptionPointers (); public static IntPtr GetIDispatchForObjectInContext (object o); public static IntPtr GetITypeInfoForType (System.Type t); public static IntPtr GetIUnknownForObjectInContext (object o); [Obsolete ("This method has been deprecated")] public static IntPtr GetManagedThunkForUnmanagedMethodPtr (IntPtr pfnMethodToWrap, IntPtr pbSignature, int cbSignature); public static System.Reflection.MemberInfo GetMethodInfoForComSlot (System.Type t, int slot, ref ComMemberType memberType); [Obsolete ("This method has been deprecated")] public static System.Threading.Thread GetThreadFromFiberCookie (int cookie); public static System.Type GetTypeForITypeInfo (IntPtr piTypeInfo); [Obsolete] public static string GetTypeInfoName (UCOMITypeInfo pTI); public static System.Guid GetTypeLibGuid (ComTypes.ITypeLib typelib); [Obsolete] public static System.Guid GetTypeLibGuid (UCOMITypeLib pTLB); public static System.Guid GetTypeLibGuidForAssembly (System.Reflection.Assembly asm); public static int GetTypeLibLcid (ComTypes.ITypeLib typelib); [Obsolete] public static int GetTypeLibLcid (UCOMITypeLib pTLB); public static string GetTypeLibName (ComTypes.ITypeLib typelib); [Obsolete] public static string GetTypeLibName (UCOMITypeLib pTLB); public static void GetTypeLibVersionForAssembly (System.Reflection.Assembly inputAssembly, out int majorVersion, out int minorVersion); [Obsolete ("This method has been deprecated")] public static IntPtr GetUnmanagedThunkForManagedMethodPtr (IntPtr pfnMethodToWrap, IntPtr pbSignature, int cbSignature); public static bool IsTypeVisibleFromCom (System.Type t); public static int NumParamBytes (System.Reflection.MethodInfo m); [Obsolete] public static void ReleaseThreadCache (); ``` * [csproj] Update project files * Bump API snapshot submodule
Diffstat (limited to 'mcs/class/referencesource')
-rw-r--r--mcs/class/referencesource/mscorlib/system/iappdomain.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/dispatchwrapper.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/ucomitypeinfo.cs2
3 files changed, 4 insertions, 6 deletions
diff --git a/mcs/class/referencesource/mscorlib/system/iappdomain.cs b/mcs/class/referencesource/mscorlib/system/iappdomain.cs
index 2e1ff7143e0..c7f7081914a 100644
--- a/mcs/class/referencesource/mscorlib/system/iappdomain.cs
+++ b/mcs/class/referencesource/mscorlib/system/iappdomain.cs
@@ -29,9 +29,7 @@ namespace System {
using System.Threading;
using System.Runtime.InteropServices;
using System.Runtime.Remoting;
-#if !FULL_AOT_RUNTIME
using System.Reflection.Emit;
-#endif
using CultureInfo = System.Globalization.CultureInfo;
using System.IO;
using System.Runtime.Versioning;
@@ -88,7 +86,7 @@ namespace System {
[method:System.Security.SecurityCritical]
event UnhandledExceptionEventHandler UnhandledException;
-#if !FULL_AOT_RUNTIME
+
AssemblyBuilder DefineDynamicAssembly(AssemblyName name,
AssemblyBuilderAccess access);
@@ -141,7 +139,7 @@ namespace System {
PermissionSet optionalPermissions,
PermissionSet refusedPermissions,
bool isSynchronized);
-#endif
+
ObjectHandle CreateInstance(String assemblyName,
String typeName);
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/dispatchwrapper.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/dispatchwrapper.cs
index 9d0439d95cf..23f76190af6 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/dispatchwrapper.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/dispatchwrapper.cs
@@ -31,7 +31,7 @@ namespace System.Runtime.InteropServices {
{
if (obj != null)
{
-#if FULL_AOT_RUNTIME
+#if FULL_AOT_RUNTIME || MONOTOUCH
throw new PlatformNotSupportedException ();
#else
// Make sure this guy has an IDispatch
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ucomitypeinfo.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ucomitypeinfo.cs
index 0966834a2b2..31defa0c60f 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ucomitypeinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ucomitypeinfo.cs
@@ -304,7 +304,7 @@ namespace System.Runtime.InteropServices
VARFLAG_FIMMEDIATEBIND =0x1000
}
-#if !FULL_AOT_RUNTIME
+#if !FULL_AOT_RUNTIME && !MONOTOUCH
[Obsolete("Use System.Runtime.InteropServices.ComTypes.ITypeInfo instead. http://go.microsoft.com/fwlink/?linkid=14202", false)]
[Guid("00020401-0000-0000-C000-000000000046")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]