From d0768f3387561a94104c514931e081216fc3a242 Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Thu, 28 Sep 2023 09:33:57 -0600 Subject: [PATCH 1/8] Fix releases link in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3e75e5b4c..eb18d083b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![NuGet](https://img.shields.io/nuget/v/MessagePack.svg)](https://www.nuget.org/packages/messagepack) [![NuGet](https://img.shields.io/nuget/vpre/MessagePack.svg)](https://www.nuget.org/packages/messagepack) -[![Releases](https://img.shields.io/github/release/neuecc/MessagePack-CSharp.svg)][Releases] +[![Releases](https://img.shields.io/github/release/neuecc/MessagePack-CSharp.svg)](https://github.com/MessagePack-CSharp/MessagePack-CSharp/releases) [![Join the chat at https://gitter.im/MessagePack-CSharp/Lobby](https://badges.gitter.im/MessagePack-CSharp/Lobby.svg)](https://gitter.im/MessagePack-CSharp/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Build Status](https://dev.azure.com/ils0086/MessagePack-CSharp/_apis/build/status/MessagePack-CSharp-CI?branchName=master)](https://dev.azure.com/ils0086/MessagePack-CSharp/_build/latest?definitionId=2&branchName=master) From 4890328d2f7b5017e29c6e7accfc0ff5b8383027 Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Wed, 4 Oct 2023 07:42:10 -0600 Subject: [PATCH 2/8] Better constrain dictionary detection Fixes #1686 --- .../Resolvers/DynamicGenericResolver.cs | 6 +- .../DynamicObjectResolverConstructorTest.cs | 99 +++++++++++++++++++ 2 files changed, 102 insertions(+), 3 deletions(-) diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/DynamicGenericResolver.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/DynamicGenericResolver.cs index d3b9d0b02..19bd04a00 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/DynamicGenericResolver.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/DynamicGenericResolver.cs @@ -309,7 +309,7 @@ internal static class DynamicGenericResolverGetFormatterHelper { // generic dictionary var dictionaryDef = ti.ImplementedInterfaces.FirstOrDefault(x => x.GetTypeInfo().IsConstructedGenericType() && x.GetGenericTypeDefinition() == typeof(IDictionary<,>)); - if (dictionaryDef != null && ti.DeclaredConstructors.Any(x => x.GetParameters().Length == 0)) + if (dictionaryDef != null && ti.DeclaredConstructors.Any(x => !x.IsStatic && x.GetParameters().Length == 0)) { Type keyType = dictionaryDef.GenericTypeArguments[0]; Type valueType = dictionaryDef.GenericTypeArguments[1]; @@ -318,7 +318,7 @@ internal static class DynamicGenericResolverGetFormatterHelper // generic dictionary with collection ctor var dictionaryInterfaceDef = ti.ImplementedInterfaces.FirstOrDefault(x => x.GetTypeInfo().IsConstructedGenericType() && - (x.GetGenericTypeDefinition() == typeof(IDictionary<,>) || x.GetGenericTypeDefinition() == typeof(IReadOnlyDictionary<,>))); + (x.GetGenericTypeDefinition() == typeof(IReadOnlyDictionary<,>))); if (dictionaryInterfaceDef != null) { Type keyType = dictionaryInterfaceDef.GenericTypeArguments[0]; @@ -342,7 +342,7 @@ internal static class DynamicGenericResolverGetFormatterHelper // generic collection var collectionDef = ti.ImplementedInterfaces.FirstOrDefault(x => x.GetTypeInfo().IsConstructedGenericType() && x.GetGenericTypeDefinition() == typeof(ICollection<>)); - if (collectionDef != null && ti.DeclaredConstructors.Any(x => x.GetParameters().Length == 0)) + if (collectionDef != null && ti.DeclaredConstructors.Any(x => !x.IsStatic && x.GetParameters().Length == 0)) { Type elemType = collectionDef.GenericTypeArguments[0]; return CreateInstance(typeof(GenericCollectionFormatter<,>), new[] { elemType, t }); diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverConstructorTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverConstructorTest.cs index 68f0b8aa2..ec771be78 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverConstructorTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverConstructorTest.cs @@ -2,6 +2,10 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; using Xunit; namespace MessagePack.Tests @@ -279,6 +283,101 @@ public TestConstructor10(int x, int y, int z) } } + [MessagePackObject] + public class DeviceCommands : IDictionary + { + [IgnoreMember] + public static readonly DeviceCommands Empty = new(new Dictionary()); + + [Key(0)] + public IDictionary Commands { get; } + + [IgnoreMember] + public ICollection Keys => throw new NotImplementedException(); + + [IgnoreMember] + public ICollection Values => throw new NotImplementedException(); + + [IgnoreMember] + public int Count => 0; + + [IgnoreMember] + public bool IsReadOnly => throw new NotImplementedException(); + + public string this[int key] + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + [SerializationConstructor] + public DeviceCommands(IDictionary commands) + { + Commands = commands; + } + + public void Add(int key, string value) + { + throw new NotImplementedException(); + } + + public bool ContainsKey(int key) + { + throw new NotImplementedException(); + } + + public bool Remove(int key) + { + throw new NotImplementedException(); + } + + public bool TryGetValue(int key, [MaybeNullWhen(false)] out string value) + { + throw new NotImplementedException(); + } + + public void Add(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public void Clear() + { + throw new NotImplementedException(); + } + + public bool Contains(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + throw new NotImplementedException(); + } + + public bool Remove(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public IEnumerator> GetEnumerator() + { + return Enumerable.Empty>().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + throw new NotImplementedException(); + } + } + + [Fact] + public void DictionaryWithStaticCtor() + { + MessagePackSerializer.Serialize(new DeviceCommands(new Dictionary()), MessagePackSerializerOptions.Standard); + } + [Fact] public void StringKey() { From 0c7c7892748b0f494ab4a71d91c9445b242f7ec2 Mon Sep 17 00:00:00 2001 From: KonH Date: Thu, 5 Oct 2023 17:59:03 +0200 Subject: [PATCH 3/8] Fix releases links in README text It is not rendered as actual links previously and now it works as expected --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index eb18d083b..c5dee6f06 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ Install-Package MessagePack.AspNetCoreMvcFormatter ### Unity -For Unity projects, the [releases][Releases] page provides downloadable `.unitypackage` files. When using in Unity IL2CPP or Xamarin AOT environments, please carefully read the [pre-code generation section](#aot). +For Unity projects, the [Releases](https://github.com/MessagePack-CSharp/MessagePack-CSharp/releases) page provides downloadable `.unitypackage` files. When using in Unity IL2CPP or Xamarin AOT environments, please carefully read the [pre-code generation section](#aot). ### Migration notes from v1.x @@ -1531,7 +1531,7 @@ Within the *reserved* ranges, this library defines or implements extensions that Unity lowest supported version is `2018.3`, API Compatibility Level supports both `.NET 4.x` and `.NET Standard 2.0`. -You can install the `unitypackage` from the [releases][Releases] page. +You can install the `unitypackage` from the [Releases](https://github.com/MessagePack-CSharp/MessagePack-CSharp/releases) page. If your build targets .NET Framework 4.x and runs on mono, you can use it as is. But if your build targets IL2CPP, you can not use `Dynamic***Resolver`, so it is required to use pre-code generation. Please see [pre-code generation section](#aot). @@ -1605,7 +1605,7 @@ Once you have the tool installed, simply invoke using `dotnet mpc` within your r dotnet mpc --help ``` -Alternatively, you can download mpc from the [releases][Releases] page, that includes platform native binaries (that don't require a separate dotnet runtime). +Alternatively, you can download mpc from the [Releases](https://github.com/MessagePack-CSharp/MessagePack-CSharp/releases) page, that includes platform native binaries (that don't require a separate dotnet runtime). ``` Usage: mpc [options...] From 1a582ca624ddf4c30d0e515f63f0b38a46a8cd6e Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Thu, 19 Oct 2023 05:36:59 -0600 Subject: [PATCH 4/8] Create FUNDING.yml (#1693) --- .github/FUNDING.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..74a8d180b --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,5 @@ +# These are supported funding model platforms + +github: +- neuecc +- aarnott From f31cac3ed70ebfe300e63fea2dabe117dee4791b Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Fri, 27 Oct 2023 11:18:11 -0600 Subject: [PATCH 5/8] Workaround mono runtime bug Fixes #1695 --- .../Assets/Scripts/MessagePack/Utilities.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Utilities.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Utilities.cs index 39f5d4221..02e8992fa 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Utilities.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Utilities.cs @@ -31,7 +31,7 @@ internal static byte[] GetWriterBytes(TArg arg, GetWriterBytesAction } } - internal static Memory GetMemoryCheckResult(this IBufferWriter bufferWriter, int size = 0) + internal static Memory GetMemoryCheckResult(this IBufferWriter bufferWriter, int size = 0) { var memory = bufferWriter.GetMemory(size); if (memory.IsEmpty) From cffef3c1b0a6f198090c35ad3080a939ff53862e Mon Sep 17 00:00:00 2001 From: Brian Whelan Date: Thu, 2 Nov 2023 15:05:09 +0000 Subject: [PATCH 6/8] Add MESSAGEPACK_FORCE_AOT condition --- .../MessagePack/Resolvers/StandardResolver.cs | 20 +++++++++---------- .../TypelessContractlessStandardResolver.cs | 2 +- .../Tests/ShareTests/AllowPrivateTest.cs | 6 +++--- .../Tests/ShareTests/AnonymousTypeTest.cs | 2 +- .../ContractlessStandardResolverTest.cs | 2 +- .../Tests/ShareTests/DataContractTest.cs | 2 +- ...ResolverDerivedAttributeInheritanceTest.cs | 2 +- .../DynamicObjectResolverInterfaceTest.cs | 2 +- .../DynamicObjectResolverOrderTest.cs | 2 +- .../ShareTests/DynamicObjectResolverTests.cs | 2 +- .../Tests/ShareTests/EnumAsStringTest.cs | 2 +- .../Tests/ShareTests/GenericFormatters.cs | 2 +- .../Tests/ShareTests/MessagePackBinaryTest.cs | 4 ++-- .../ShareTests/MessagePackSerializerTest.cs | 4 ++-- .../ShareTests/NonGenericCollectionTest.cs | 2 +- .../Tests/ShareTests/ObjectResolverTest.cs | 4 ++-- .../ShareTests/OldSpecBinaryFormatterTest.cs | 4 ++-- .../Tests/ShareTests/PrimitiveResolverTest.cs | 2 +- .../ShareTests/PrimitivelikeFormatterTest.cs | 2 +- .../Tests/ShareTests/ValueTupleTest.cs | 2 +- 20 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs index 7a2389fc9..9e07565e3 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs @@ -28,7 +28,7 @@ public sealed class StandardResolver : IFormatterResolver private static readonly IFormatterResolver[] Resolvers = StandardResolverHelper.DefaultResolvers.Concat(new IFormatterResolver[] { -#if !ENABLE_IL2CPP && !NET_STANDARD_2_0 +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) && !NET_STANDARD_2_0 DynamicObjectResolver.Instance, // Try Object #endif }).ToArray(); @@ -57,7 +57,7 @@ static FormatterCache() if (typeof(T) == typeof(object)) { // final fallback -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) Formatter = (IMessagePackFormatter)DynamicObjectTypeFallbackFormatter.Instance; #else Formatter = PrimitiveObjectResolver.Instance.GetFormatter(); @@ -93,7 +93,7 @@ public sealed class ContractlessStandardResolver : IFormatterResolver private static readonly IFormatterResolver[] Resolvers = StandardResolverHelper.DefaultResolvers.Concat(new IFormatterResolver[] { -#if !ENABLE_IL2CPP && !NET_STANDARD_2_0 +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) && !NET_STANDARD_2_0 DynamicObjectResolver.Instance, // Try Object DynamicContractlessObjectResolver.Instance, // Serializes keys as strings #endif @@ -123,7 +123,7 @@ static FormatterCache() if (typeof(T) == typeof(object)) { // final fallback -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) Formatter = (IMessagePackFormatter)DynamicObjectTypeFallbackFormatter.Instance; #else Formatter = PrimitiveObjectResolver.Instance.GetFormatter(); @@ -159,7 +159,7 @@ public sealed class StandardResolverAllowPrivate : IFormatterResolver private static readonly IFormatterResolver[] Resolvers = StandardResolverHelper.DefaultResolvers.Concat(new IFormatterResolver[] { -#if !ENABLE_IL2CPP && !NET_STANDARD_2_0 +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) && !NET_STANDARD_2_0 DynamicObjectResolverAllowPrivate.Instance, // Try Object #endif }).ToArray(); @@ -188,7 +188,7 @@ static FormatterCache() if (typeof(T) == typeof(object)) { // final fallback -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) Formatter = (IMessagePackFormatter)DynamicObjectTypeFallbackFormatter.Instance; #else Formatter = PrimitiveObjectResolver.Instance.GetFormatter(); @@ -224,7 +224,7 @@ public sealed class ContractlessStandardResolverAllowPrivate : IFormatterResolve private static readonly IFormatterResolver[] Resolvers = StandardResolverHelper.DefaultResolvers.Concat(new IFormatterResolver[] { -#if !ENABLE_IL2CPP && !NET_STANDARD_2_0 +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) && !NET_STANDARD_2_0 DynamicObjectResolverAllowPrivate.Instance, // Try Object DynamicContractlessObjectResolverAllowPrivate.Instance, // Serializes keys as strings #endif @@ -254,7 +254,7 @@ static FormatterCache() if (typeof(T) == typeof(object)) { // final fallback -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) Formatter = (IMessagePackFormatter)DynamicObjectTypeFallbackFormatter.Instance; #else Formatter = PrimitiveObjectResolver.Instance.GetFormatter(); @@ -293,11 +293,11 @@ internal static class StandardResolverHelper CompositeResolver.Create(ExpandoObjectFormatter.Instance), #endif -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) DynamicGenericResolver.Instance, // Try Array, Tuple, Collection, Enum(Generic Fallback) #endif -#if !ENABLE_IL2CPP && !NET_STANDARD_2_0 +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) && !NET_STANDARD_2_0 DynamicUnionResolver.Instance, // Try Union(Interface) #endif }; diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs index 70e044d2f..e2d3afb36 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs @@ -36,7 +36,7 @@ public sealed class TypelessContractlessStandardResolver : IFormatterResolver ForceSizePrimitiveObjectResolver.Instance, // Preserve particular integer types BuiltinResolver.Instance, // Try Builtin AttributeFormatterResolver.Instance, // Try use [MessagePackFormatter] -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) DynamicEnumResolver.Instance, // Try Enum DynamicGenericResolver.Instance, // Try Array, Tuple, Collection DynamicUnionResolver.Instance, // Try Union(Interface) diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AllowPrivateTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AllowPrivateTest.cs index f27b794e1..b53409340 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AllowPrivateTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AllowPrivateTest.cs @@ -1,7 +1,7 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) using System; using System.Collections.Generic; @@ -179,7 +179,7 @@ private PrivateReadonlyField() public string Field => field; } -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [MessagePackObject] public class ImmutablePrivateClass @@ -360,7 +360,7 @@ public void PrivateReadonlyFieldSetInConstructor() Assert.Equal("not null", deserialized.Field); } -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [Fact] public void PrivateConstructor() diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AnonymousTypeTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AnonymousTypeTest.cs index 1606d5ea2..4ae9406a2 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AnonymousTypeTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AnonymousTypeTest.cs @@ -1,7 +1,7 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) using System; using System.Collections.Generic; diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ContractlessStandardResolverTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ContractlessStandardResolverTest.cs index 0349bc0f7..dad30357e 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ContractlessStandardResolverTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ContractlessStandardResolverTest.cs @@ -1,7 +1,7 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) using System; using System.Collections; diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DataContractTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DataContractTest.cs index d4defb9e3..dd4d0a6aa 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DataContractTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DataContractTest.cs @@ -14,7 +14,7 @@ namespace MessagePack.Tests { -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) public class DataContractTest { private readonly ITestOutputHelper logger; diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverDerivedAttributeInheritanceTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverDerivedAttributeInheritanceTest.cs index db55d89f3..0e9617f72 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverDerivedAttributeInheritanceTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverDerivedAttributeInheritanceTest.cs @@ -6,7 +6,7 @@ namespace MessagePack.Tests { -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) public class DynamicObjectResolverDerivedAttributeInheritanceTest { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverInterfaceTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverInterfaceTest.cs index 616687f7f..a3d90e289 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverInterfaceTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverInterfaceTest.cs @@ -7,7 +7,7 @@ namespace MessagePack.Tests { -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) public class DynamicObjectResolverInterfaceTest { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverOrderTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverOrderTest.cs index 9d08d789f..1cad1f11c 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverOrderTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverOrderTest.cs @@ -45,7 +45,7 @@ private IEnumerable IteratePropertyNames(ReadOnlyMemory bytes) return result; } -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [Fact] public void OrderTest() diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverTests.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverTests.cs index 8508b01a5..8cfe62856 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverTests.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverTests.cs @@ -1,7 +1,7 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) using System; using System.Runtime.Serialization; diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/EnumAsStringTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/EnumAsStringTest.cs index 4dccfe81a..26a50a411 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/EnumAsStringTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/EnumAsStringTest.cs @@ -69,7 +69,7 @@ public enum AsStringFlag FooBarBaz = 32, } -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) public class EnumAsStringTest { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/GenericFormatters.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/GenericFormatters.cs index 9fb375580..ba8b39ac9 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/GenericFormatters.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/GenericFormatters.cs @@ -11,7 +11,7 @@ namespace MessagePack.Tests { -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) public class GenericFormatters { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackBinaryTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackBinaryTest.cs index 78923366c..0c9f2f05a 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackBinaryTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackBinaryTest.cs @@ -324,7 +324,7 @@ public void Int32Test(int target, int length) [Theory] [InlineData(long.MinValue, 9)] [InlineData((long)-3372036854775807, 9)] -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [InlineData((long)-2147483648, 5)] #endif [InlineData((long)-50000, 5)] @@ -660,7 +660,7 @@ public void StringSegmentTest(string target) [InlineData('a')] [InlineData('あ')] [InlineData('c')] -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [InlineData(char.MinValue)] [InlineData(char.MaxValue)] #endif diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackSerializerTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackSerializerTest.cs index 583b288e6..a747c7b7e 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackSerializerTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackSerializerTest.cs @@ -42,7 +42,7 @@ public void NonGeneric() ms.Position = 0; var data4 = MessagePackSerializer.Deserialize(t, ms, MessagePackSerializer.DefaultOptions) as FirstSimpleData; -#if ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) var data5 = data4; #else MessagePackSerializer.Serialize(t, ref writer, data, MessagePackSerializer.DefaultOptions); @@ -241,7 +241,7 @@ public void StackDepthCheck_Maps(bool convertToJson) } } -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [Fact] public void StackDepthCheck_DynamicObjectResolver() diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/NonGenericCollectionTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/NonGenericCollectionTest.cs index 26ae4b0e4..0e5cc7989 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/NonGenericCollectionTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/NonGenericCollectionTest.cs @@ -13,7 +13,7 @@ namespace MessagePack.Tests { public class NonGenericCollectionTest { -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [Fact] public void List() { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ObjectResolverTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ObjectResolverTest.cs index 0812a6023..9a2f9d17e 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ObjectResolverTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ObjectResolverTest.cs @@ -252,7 +252,7 @@ public void SerializationCallback() } } -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [Fact] public void GenericClassTest() @@ -326,7 +326,7 @@ public void WithIndexer() v.IsStructuralEqual(o); } -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [Fact] public void Contractless() diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/OldSpecBinaryFormatterTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/OldSpecBinaryFormatterTest.cs index c85f17b57..d7f648e80 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/OldSpecBinaryFormatterTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/OldSpecBinaryFormatterTest.cs @@ -49,7 +49,7 @@ public void SerializeNil() Assert.Null(deserializedBytes); } -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [Theory] [InlineData(10)] // fixstr @@ -95,7 +95,7 @@ public void DeserializeNil() Assert.Null(deserializedObj); } -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [Theory] [InlineData(10)] // fixstr diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitiveResolverTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitiveResolverTest.cs index 9ac65dd50..c953d56fa 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitiveResolverTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitiveResolverTest.cs @@ -12,7 +12,7 @@ namespace MessagePack.Tests { public class PrimitiveResolverTest { -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [Fact] public void PrimitiveTest2() diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitivelikeFormatterTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitivelikeFormatterTest.cs index 614380ed3..28ca1735b 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitivelikeFormatterTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitivelikeFormatterTest.cs @@ -16,7 +16,7 @@ namespace MessagePack.Tests { public class PrimitivelikeFormatterTest { -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) [Fact] public void CanResolve() { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ValueTupleTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ValueTupleTest.cs index 67329b126..5c3aee519 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ValueTupleTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ValueTupleTest.cs @@ -10,7 +10,7 @@ namespace MessagePack.Tests { -#if !ENABLE_IL2CPP +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) public class ValueTupleTest { From d71dc812c10fe4f758a5caa481b9f637b4b31cac Mon Sep 17 00:00:00 2001 From: Brian Whelan Date: Thu, 9 Nov 2023 15:44:57 +0000 Subject: [PATCH 7/8] DYNAMIC_GENERATION define --- .../MessagePack/Resolvers/StandardResolver.cs | 24 +++++++++++-------- .../TypelessContractlessStandardResolver.cs | 6 ++++- .../Tests/ShareTests/AllowPrivateTest.cs | 8 +++++-- .../Tests/ShareTests/AnonymousTypeTest.cs | 4 ++++ .../ContractlessStandardResolverTest.cs | 3 +++ .../Tests/ShareTests/DataContractTest.cs | 6 ++++- ...ResolverDerivedAttributeInheritanceTest.cs | 6 ++++- .../DynamicObjectResolverInterfaceTest.cs | 6 ++++- .../DynamicObjectResolverOrderTest.cs | 6 ++++- .../ShareTests/DynamicObjectResolverTests.cs | 4 ++++ .../Tests/ShareTests/EnumAsStringTest.cs | 6 ++++- .../Tests/ShareTests/GenericFormatters.cs | 6 ++++- .../Tests/ShareTests/MessagePackBinaryTest.cs | 8 +++++-- .../ShareTests/MessagePackSerializerTest.cs | 8 +++++-- .../ShareTests/NonGenericCollectionTest.cs | 6 ++++- .../Tests/ShareTests/ObjectResolverTest.cs | 8 +++++-- .../ShareTests/OldSpecBinaryFormatterTest.cs | 8 +++++-- .../Tests/ShareTests/PrimitiveResolverTest.cs | 6 ++++- .../ShareTests/PrimitivelikeFormatterTest.cs | 6 ++++- .../Tests/ShareTests/ValueTupleTest.cs | 6 ++++- 20 files changed, 110 insertions(+), 31 deletions(-) diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs index 9e07565e3..34e44c04e 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System.Linq; using MessagePack.Formatters; using MessagePack.Internal; @@ -28,7 +32,7 @@ public sealed class StandardResolver : IFormatterResolver private static readonly IFormatterResolver[] Resolvers = StandardResolverHelper.DefaultResolvers.Concat(new IFormatterResolver[] { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) && !NET_STANDARD_2_0 +#if DYNAMIC_GENERATION && !NET_STANDARD_2_0 DynamicObjectResolver.Instance, // Try Object #endif }).ToArray(); @@ -57,7 +61,7 @@ static FormatterCache() if (typeof(T) == typeof(object)) { // final fallback -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION Formatter = (IMessagePackFormatter)DynamicObjectTypeFallbackFormatter.Instance; #else Formatter = PrimitiveObjectResolver.Instance.GetFormatter(); @@ -93,7 +97,7 @@ public sealed class ContractlessStandardResolver : IFormatterResolver private static readonly IFormatterResolver[] Resolvers = StandardResolverHelper.DefaultResolvers.Concat(new IFormatterResolver[] { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) && !NET_STANDARD_2_0 +#if DYNAMIC_GENERATION && !NET_STANDARD_2_0 DynamicObjectResolver.Instance, // Try Object DynamicContractlessObjectResolver.Instance, // Serializes keys as strings #endif @@ -123,7 +127,7 @@ static FormatterCache() if (typeof(T) == typeof(object)) { // final fallback -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION Formatter = (IMessagePackFormatter)DynamicObjectTypeFallbackFormatter.Instance; #else Formatter = PrimitiveObjectResolver.Instance.GetFormatter(); @@ -159,7 +163,7 @@ public sealed class StandardResolverAllowPrivate : IFormatterResolver private static readonly IFormatterResolver[] Resolvers = StandardResolverHelper.DefaultResolvers.Concat(new IFormatterResolver[] { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) && !NET_STANDARD_2_0 +#if DYNAMIC_GENERATION && !NET_STANDARD_2_0 DynamicObjectResolverAllowPrivate.Instance, // Try Object #endif }).ToArray(); @@ -188,7 +192,7 @@ static FormatterCache() if (typeof(T) == typeof(object)) { // final fallback -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION Formatter = (IMessagePackFormatter)DynamicObjectTypeFallbackFormatter.Instance; #else Formatter = PrimitiveObjectResolver.Instance.GetFormatter(); @@ -224,7 +228,7 @@ public sealed class ContractlessStandardResolverAllowPrivate : IFormatterResolve private static readonly IFormatterResolver[] Resolvers = StandardResolverHelper.DefaultResolvers.Concat(new IFormatterResolver[] { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) && !NET_STANDARD_2_0 +#if DYNAMIC_GENERATION && !NET_STANDARD_2_0 DynamicObjectResolverAllowPrivate.Instance, // Try Object DynamicContractlessObjectResolverAllowPrivate.Instance, // Serializes keys as strings #endif @@ -254,7 +258,7 @@ static FormatterCache() if (typeof(T) == typeof(object)) { // final fallback -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION Formatter = (IMessagePackFormatter)DynamicObjectTypeFallbackFormatter.Instance; #else Formatter = PrimitiveObjectResolver.Instance.GetFormatter(); @@ -293,11 +297,11 @@ internal static class StandardResolverHelper CompositeResolver.Create(ExpandoObjectFormatter.Instance), #endif -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION DynamicGenericResolver.Instance, // Try Array, Tuple, Collection, Enum(Generic Fallback) #endif -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) && !NET_STANDARD_2_0 +#if DYNAMIC_GENERATION && !NET_STANDARD_2_0 DynamicUnionResolver.Instance, // Try Union(Interface) #endif }; diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs index e2d3afb36..6859a1c3c 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs @@ -3,6 +3,10 @@ #if !UNITY_2018_3_OR_NEWER +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Collections.Generic; using MessagePack.Formatters; @@ -36,7 +40,7 @@ public sealed class TypelessContractlessStandardResolver : IFormatterResolver ForceSizePrimitiveObjectResolver.Instance, // Preserve particular integer types BuiltinResolver.Instance, // Try Builtin AttributeFormatterResolver.Instance, // Try use [MessagePackFormatter] -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION DynamicEnumResolver.Instance, // Try Enum DynamicGenericResolver.Instance, // Try Array, Tuple, Collection DynamicUnionResolver.Instance, // Try Union(Interface) diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AllowPrivateTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AllowPrivateTest.cs index b53409340..ef56327a4 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AllowPrivateTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AllowPrivateTest.cs @@ -2,6 +2,10 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. #if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + +#if DYNAMIC_GENERATION using System; using System.Collections.Generic; @@ -179,7 +183,7 @@ private PrivateReadonlyField() public string Field => field; } -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [MessagePackObject] public class ImmutablePrivateClass @@ -360,7 +364,7 @@ public void PrivateReadonlyFieldSetInConstructor() Assert.Equal("not null", deserialized.Field); } -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [Fact] public void PrivateConstructor() diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AnonymousTypeTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AnonymousTypeTest.cs index 4ae9406a2..e5ad3351a 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AnonymousTypeTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/AnonymousTypeTest.cs @@ -2,6 +2,10 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. #if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + +#if DYNAMIC_GENERATION using System; using System.Collections.Generic; diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ContractlessStandardResolverTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ContractlessStandardResolverTest.cs index dad30357e..ff5662a72 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ContractlessStandardResolverTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ContractlessStandardResolverTest.cs @@ -2,7 +2,10 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. #if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif +#if DYNAMIC_GENERATION using System; using System.Collections; using System.Collections.Generic; diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DataContractTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DataContractTest.cs index dd4d0a6aa..837f4e0f1 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DataContractTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DataContractTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Collections.Generic; using System.IO; @@ -14,7 +18,7 @@ namespace MessagePack.Tests { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION public class DataContractTest { private readonly ITestOutputHelper logger; diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverDerivedAttributeInheritanceTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverDerivedAttributeInheritanceTest.cs index 0e9617f72..8233e4944 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverDerivedAttributeInheritanceTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverDerivedAttributeInheritanceTest.cs @@ -1,12 +1,16 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using Xunit; namespace MessagePack.Tests { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION public class DynamicObjectResolverDerivedAttributeInheritanceTest { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverInterfaceTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverInterfaceTest.cs index a3d90e289..fa6fc58a8 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverInterfaceTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverInterfaceTest.cs @@ -1,13 +1,17 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System.Collections.Generic; using System.Linq; using Xunit; namespace MessagePack.Tests { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION public class DynamicObjectResolverInterfaceTest { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverOrderTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverOrderTest.cs index 1cad1f11c..7e55894ff 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverOrderTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverOrderTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Buffers; using System.Collections.Generic; @@ -45,7 +49,7 @@ private IEnumerable IteratePropertyNames(ReadOnlyMemory bytes) return result; } -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [Fact] public void OrderTest() diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverTests.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverTests.cs index 8cfe62856..7e6535423 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverTests.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/DynamicObjectResolverTests.cs @@ -2,6 +2,10 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. #if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + +#if DYNAMIC_GENERATION using System; using System.Runtime.Serialization; diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/EnumAsStringTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/EnumAsStringTest.cs index 26a50a411..2eb48b75a 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/EnumAsStringTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/EnumAsStringTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Runtime.Serialization; using MessagePack.Resolvers; @@ -69,7 +73,7 @@ public enum AsStringFlag FooBarBaz = 32, } -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION public class EnumAsStringTest { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/GenericFormatters.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/GenericFormatters.cs index ba8b39ac9..012d8c146 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/GenericFormatters.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/GenericFormatters.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Buffers; using System.Collections.Generic; @@ -11,7 +15,7 @@ namespace MessagePack.Tests { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION public class GenericFormatters { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackBinaryTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackBinaryTest.cs index 0c9f2f05a..4a187cbf2 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackBinaryTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackBinaryTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Buffers; using System.IO; @@ -324,7 +328,7 @@ public void Int32Test(int target, int length) [Theory] [InlineData(long.MinValue, 9)] [InlineData((long)-3372036854775807, 9)] -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [InlineData((long)-2147483648, 5)] #endif [InlineData((long)-50000, 5)] @@ -660,7 +664,7 @@ public void StringSegmentTest(string target) [InlineData('a')] [InlineData('あ')] [InlineData('c')] -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [InlineData(char.MinValue)] [InlineData(char.MaxValue)] #endif diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackSerializerTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackSerializerTest.cs index a747c7b7e..211a35143 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackSerializerTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/MessagePackSerializerTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Buffers; using System.Collections.Generic; @@ -42,7 +46,7 @@ public void NonGeneric() ms.Position = 0; var data4 = MessagePackSerializer.Deserialize(t, ms, MessagePackSerializer.DefaultOptions) as FirstSimpleData; -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION var data5 = data4; #else MessagePackSerializer.Serialize(t, ref writer, data, MessagePackSerializer.DefaultOptions); @@ -241,7 +245,7 @@ public void StackDepthCheck_Maps(bool convertToJson) } } -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [Fact] public void StackDepthCheck_DynamicObjectResolver() diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/NonGenericCollectionTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/NonGenericCollectionTest.cs index 0e5cc7989..ecca85d69 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/NonGenericCollectionTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/NonGenericCollectionTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Collections; using System.Collections.Generic; @@ -13,7 +17,7 @@ namespace MessagePack.Tests { public class NonGenericCollectionTest { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [Fact] public void List() { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ObjectResolverTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ObjectResolverTest.cs index 9a2f9d17e..c48bacae4 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ObjectResolverTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ObjectResolverTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Buffers; using System.Collections.Generic; @@ -252,7 +256,7 @@ public void SerializationCallback() } } -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [Fact] public void GenericClassTest() @@ -326,7 +330,7 @@ public void WithIndexer() v.IsStructuralEqual(o); } -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [Fact] public void Contractless() diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/OldSpecBinaryFormatterTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/OldSpecBinaryFormatterTest.cs index d7f648e80..748451f4d 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/OldSpecBinaryFormatterTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/OldSpecBinaryFormatterTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Buffers; using System.Collections.Generic; @@ -49,7 +53,7 @@ public void SerializeNil() Assert.Null(deserializedBytes); } -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [Theory] [InlineData(10)] // fixstr @@ -95,7 +99,7 @@ public void DeserializeNil() Assert.Null(deserializedObj); } -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [Theory] [InlineData(10)] // fixstr diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitiveResolverTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitiveResolverTest.cs index c953d56fa..75ccc342a 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitiveResolverTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitiveResolverTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Collections.Generic; using System.Linq; @@ -12,7 +16,7 @@ namespace MessagePack.Tests { public class PrimitiveResolverTest { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [Fact] public void PrimitiveTest2() diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitivelikeFormatterTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitivelikeFormatterTest.cs index 28ca1735b..72848da97 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitivelikeFormatterTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/PrimitivelikeFormatterTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Buffers; using System.Collections.Generic; @@ -16,7 +20,7 @@ namespace MessagePack.Tests { public class PrimitivelikeFormatterTest { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION [Fact] public void CanResolve() { diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ValueTupleTest.cs b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ValueTupleTest.cs index 5c3aee519..c3a1e92c6 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ValueTupleTest.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/Tests/ShareTests/ValueTupleTest.cs @@ -1,6 +1,10 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#define DYNAMIC_GENERATION +#endif + using System; using System.Collections.Generic; using System.Linq; @@ -10,7 +14,7 @@ namespace MessagePack.Tests { -#if !(MESSAGEPACK_FORCE_AOT || ENABLE_IL2CPP) +#if DYNAMIC_GENERATION public class ValueTupleTest { From eefc9079d12c476f95a12ccb4c1a18bf0f9aa03c Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Thu, 30 Nov 2023 09:32:26 -0700 Subject: [PATCH 8/8] Stamp unity package version as 2.5.140 --- .../Assets/Scripts/MessagePack/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/package.json b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/package.json index 8aa486d5c..b9c7de1bc 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/package.json +++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/package.json @@ -1,7 +1,7 @@ { "name": "com.neuecc.messagepack", "displayName": "MessagePack", - "version": "2.5.124", + "version": "2.5.140", "unity": "2018.4", "description": "Extremely Fast MessagePack Serializer for C#.", "keywords": [