From 92143a61f60b7e56a695e6d29aaf80c924a3fd59 Mon Sep 17 00:00:00 2001 From: neuecc Date: Sat, 19 Nov 2022 05:03:20 +0900 Subject: [PATCH] fix can't build netstandard2.1 lib on CSharp 11 #55 --- MemoryPack.sln | 9 ++++++++ sandbox/ClassLibrary/Class1.cs | 8 +++++++ sandbox/ClassLibrary/ClassLibrary.csproj | 19 +++++++++++++++++ src/MemoryPack.Core/Internal/TypeHelpers.cs | 4 ++-- .../MemoryPackGenerator.Emitter.cs | 7 +++--- .../Properties/launchSettings.json | 2 +- .../Internal/FixedArrayBufferWriter.cs.meta | 11 ++++++++++ .../MemoryPack.Core/Internal/TypeHelpers.cs | 4 ++-- .../MemoryPack.Generator.Roslyn3.dll | Bin 110592 -> 110592 bytes .../UserSettings/Layouts/default-2021.dwlt | 20 +++++++++--------- 10 files changed, 66 insertions(+), 18 deletions(-) create mode 100644 sandbox/ClassLibrary/Class1.cs create mode 100644 sandbox/ClassLibrary/ClassLibrary.csproj create mode 100644 src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Core/Internal/FixedArrayBufferWriter.cs.meta diff --git a/MemoryPack.sln b/MemoryPack.sln index 7588ff78..5c507cc4 100644 --- a/MemoryPack.sln +++ b/MemoryPack.sln @@ -37,6 +37,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MemoryPack.Tests.Roslyn3", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MemoryPack.Generator.Roslyn3", "src\MemoryPack.Generator.Roslyn3\MemoryPack.Generator.Roslyn3.csproj", "{0F57F162-9C68-4E0F-B89B-2EED31B69F38}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary", "sandbox\ClassLibrary\ClassLibrary.csproj", "{0ADCE3AF-C900-4FCB-938B-654211EDD6BE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -122,6 +124,12 @@ Global {0F57F162-9C68-4E0F-B89B-2EED31B69F38}.Release|Any CPU.Build.0 = Release|Any CPU {0F57F162-9C68-4E0F-B89B-2EED31B69F38}.WinBenchmark|Any CPU.ActiveCfg = Debug|Any CPU {0F57F162-9C68-4E0F-B89B-2EED31B69F38}.WinBenchmark|Any CPU.Build.0 = Debug|Any CPU + {0ADCE3AF-C900-4FCB-938B-654211EDD6BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0ADCE3AF-C900-4FCB-938B-654211EDD6BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0ADCE3AF-C900-4FCB-938B-654211EDD6BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0ADCE3AF-C900-4FCB-938B-654211EDD6BE}.Release|Any CPU.Build.0 = Release|Any CPU + {0ADCE3AF-C900-4FCB-938B-654211EDD6BE}.WinBenchmark|Any CPU.ActiveCfg = Debug|Any CPU + {0ADCE3AF-C900-4FCB-938B-654211EDD6BE}.WinBenchmark|Any CPU.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -140,6 +148,7 @@ Global {06384E50-13CE-4AA2-90B3-5EC116B06D01} = {C56A9A52-EE3A-44A5-A8EA-AE36C79FFB6C} {E2C01D05-E7F1-4151-B536-90B138AF18EF} = {204004F9-9B91-4DD1-812C-80D629169ED5} {0F57F162-9C68-4E0F-B89B-2EED31B69F38} = {81B295E0-EEDE-4D5B-B4AC-1202D5E6B3CF} + {0ADCE3AF-C900-4FCB-938B-654211EDD6BE} = {796FB992-A35C-405B-82A7-4C90C5673174} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {01ADF7A3-0758-4A3C-9A18-AEF0F30B6E1B} diff --git a/sandbox/ClassLibrary/Class1.cs b/sandbox/ClassLibrary/Class1.cs new file mode 100644 index 00000000..264094a0 --- /dev/null +++ b/sandbox/ClassLibrary/Class1.cs @@ -0,0 +1,8 @@ + +using MemoryPack; + +[MemoryPackable] +public partial class Stat +{ + +} diff --git a/sandbox/ClassLibrary/ClassLibrary.csproj b/sandbox/ClassLibrary/ClassLibrary.csproj new file mode 100644 index 00000000..3f947bb1 --- /dev/null +++ b/sandbox/ClassLibrary/ClassLibrary.csproj @@ -0,0 +1,19 @@ + + + + net7.0;netstandard2.1 + enable + 11.0 + enable + false + + + + + + Analyzer + false + + + + diff --git a/src/MemoryPack.Core/Internal/TypeHelpers.cs b/src/MemoryPack.Core/Internal/TypeHelpers.cs index c37fd483..8202f645 100644 --- a/src/MemoryPack.Core/Internal/TypeHelpers.cs +++ b/src/MemoryPack.Core/Internal/TypeHelpers.cs @@ -50,8 +50,8 @@ static class Cache public static bool IsReferenceOrNullable; public static bool IsUnmanagedSZArray; public static int UnmanagedSZArrayElementSize; - public static bool IsFixedSizeMemoryPackable; - public static int MemoryPackableFixedSize; + public static bool IsFixedSizeMemoryPackable = false; + public static int MemoryPackableFixedSize = 0; static Cache() { diff --git a/src/MemoryPack.Generator/MemoryPackGenerator.Emitter.cs b/src/MemoryPack.Generator/MemoryPackGenerator.Emitter.cs index 6c278fe3..92ba8b27 100644 --- a/src/MemoryPack.Generator/MemoryPackGenerator.Emitter.cs +++ b/src/MemoryPack.Generator/MemoryPackGenerator.Emitter.cs @@ -268,11 +268,13 @@ public void Emit(StringBuilder writer, IGeneratorContext context) string staticRegisterFormatterMethod, staticMemoryPackableMethod, scopedRef, constraint, registerBody, registerT; var fixedSizeInterface = ""; var fixedSizeMethod = ""; + scopedRef = (context.IsCSharp11OrGreater()) + ? "scoped ref" + : "ref"; if (!context.IsNet7OrGreater) { staticRegisterFormatterMethod = "public static void "; staticMemoryPackableMethod = "public static void "; - scopedRef = "ref"; constraint = context.IsForUnity ? "" : "where TBufferWriter : class, System.Buffers.IBufferWriter"; registerBody = $"MemoryPackFormatterProvider.Register(new {Symbol.Name}Formatter());"; registerT = "RegisterFormatter();"; @@ -281,7 +283,6 @@ public void Emit(StringBuilder writer, IGeneratorContext context) { staticRegisterFormatterMethod = $"static void IMemoryPackFormatterRegister."; staticMemoryPackableMethod = $"static void IMemoryPackable<{TypeName}>."; - scopedRef = "scoped ref"; constraint = ""; registerBody = $"MemoryPackFormatterProvider.Register(new MemoryPack.Formatters.MemoryPackableFormatter<{TypeName}>());"; registerT = $"MemoryPackFormatterProvider.Register<{TypeName}>();"; @@ -373,7 +374,7 @@ sealed class {{Symbol.Name}}Formatter : MemoryPackFormatter<{{TypeName}}> } [global::MemoryPack.Internal.Preserve] - public override void Deserialize(ref MemoryPackReader reader, ref {{TypeName}} value) + public override void Deserialize(ref MemoryPackReader reader, {{scopedRef}} {{TypeName}} value) { {{TypeName}}.Deserialize(ref reader, ref value); } diff --git a/src/MemoryPack.Generator/Properties/launchSettings.json b/src/MemoryPack.Generator/Properties/launchSettings.json index 5fa6874c..a6e3d297 100644 --- a/src/MemoryPack.Generator/Properties/launchSettings.json +++ b/src/MemoryPack.Generator/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "MemoryPack.Generator": { "commandName": "DebugRoslynComponent", - "targetProject": "..\\..\\sandbox\\SandboxConsoleApp\\SandboxConsoleApp.csproj" + "targetProject": "..\\..\\sandbox\\ClassLibrary\\ClassLibrary.csproj" } } } \ No newline at end of file diff --git a/src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Core/Internal/FixedArrayBufferWriter.cs.meta b/src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Core/Internal/FixedArrayBufferWriter.cs.meta new file mode 100644 index 00000000..5f0e2e0f --- /dev/null +++ b/src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Core/Internal/FixedArrayBufferWriter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 61f475a704e250d4ab0dd882130e9fdd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Core/Internal/TypeHelpers.cs b/src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Core/Internal/TypeHelpers.cs index e465456d..5564a6e1 100644 --- a/src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Core/Internal/TypeHelpers.cs +++ b/src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Core/Internal/TypeHelpers.cs @@ -59,8 +59,8 @@ static class Cache public static bool IsReferenceOrNullable; public static bool IsUnmanagedSZArray; public static int UnmanagedSZArrayElementSize; - public static bool IsFixedSizeMemoryPackable; - public static int MemoryPackableFixedSize; + public static bool IsFixedSizeMemoryPackable = false; + public static int MemoryPackableFixedSize = 0; static Cache() { diff --git a/src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Generator/MemoryPack.Generator.Roslyn3.dll b/src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Generator/MemoryPack.Generator.Roslyn3.dll index d60f72ef6a3d6e2119759c4a5ea4f743b3e685d0..93aaf452fd63482b4ce6fc5fa49afcb52fd7a524 100644 GIT binary patch delta 4281 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 P$_6&;o7g4(iTD2iP4?W# diff --git a/src/MemoryPack.Unity/UserSettings/Layouts/default-2021.dwlt b/src/MemoryPack.Unity/UserSettings/Layouts/default-2021.dwlt index 8e312608..b2bbafdf 100644 --- a/src/MemoryPack.Unity/UserSettings/Layouts/default-2021.dwlt +++ b/src/MemoryPack.Unity/UserSettings/Layouts/default-2021.dwlt @@ -43,7 +43,7 @@ MonoBehaviour: width: 2336 height: 2061 m_ShowMode: 4 - m_Title: Console + m_Title: Project m_RootView: {fileID: 10} m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} @@ -97,7 +97,7 @@ MonoBehaviour: m_MinSize: {x: 310, y: 221} m_MaxSize: {x: 4000, y: 4021} vertical: 0 - controlID: 108 + controlID: 127 --- !u!114 &5 MonoBehaviour: m_ObjectHideFlags: 52 @@ -175,7 +175,7 @@ MonoBehaviour: m_MinSize: {x: 300, y: 300} m_MaxSize: {x: 24288, y: 24288} vertical: 0 - controlID: 85 + controlID: 86 --- !u!114 &8 MonoBehaviour: m_ObjectHideFlags: 52 @@ -324,7 +324,7 @@ MonoBehaviour: m_MinSize: {x: 100, y: 300} m_MaxSize: {x: 8096, y: 24288} vertical: 1 - controlID: 52 + controlID: 87 --- !u!114 &14 MonoBehaviour: m_ObjectHideFlags: 52 @@ -427,8 +427,8 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 2776 - y: 635 + x: -32000 + y: -31416 width: 1151 height: 882 m_ViewDataDictionary: {fileID: 0} @@ -454,14 +454,14 @@ MonoBehaviour: m_StartGridSize: 64 m_LastFolders: [] m_LastFoldersGridSize: -1 - m_LastProjectPath: C:\Users\S04451\Documents\GitHub\MemoryPack\src\MemoryPack.Unity + m_LastProjectPath: C:\Users\owner\source\repos\MemoryPack\src\MemoryPack.Unity m_LockTracker: m_IsLocked: 0 m_FolderTreeState: scrollPos: {x: 0, y: 0} m_SelectedIDs: 38600000 m_LastClickedID: 24632 - m_ExpandedIDs: 00000000f0600000 + m_ExpandedIDs: 0000000066600000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -489,7 +489,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: ffffffff00000000f0600000 + m_ExpandedIDs: ffffffff0000000066600000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -619,7 +619,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: b2f5ffff04f6ffff4ef6ffffa0f7ffffb0f8ffff00fbffff + m_ExpandedIDs: 00fbffff m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: