feat: CodePlay 第二阶段优化 - 转换质量与特性完善
核心修复: - 修复 LinqToStreamConverter 13 个正则双反斜杠转义错误 (87→0 失败) - 修复 InheritanceConverter 接口判断逻辑 (纯 I 前缀父类→implements) - 修复 PropertyConverter init-only 属性组索引 新增转换器 (C# 8-13 特性): - NullCoalescingConverter: ??、?.、??= 运算符转换 - SwitchExpressionConverter: switch 表达式→if-else 链 - PrimaryConstructorConverter: 主构造函数→传统构造函数 增强: - LinqToStreamConverter 新增 FirstOrDefault(predicate)、OrderByDescending、TakeWhile、SkipWhile、Reverse 等 - AutoFixEngine 3 轮自动修复: 轮1 导入、轮2 类型映射、轮3 API 调用/语法错误 - NamingConverter: PascalCase→camelCase 命名转换 - DetectUnconvertibleSyntax: LINQ/async/record/init/var/switch/primary ctor 问题记录 - XML Doc→JavaDoc 格式转换与注释保留 新增测试: - CSharpToJavaEdgeCaseTests: 16 个边界测试 - CSharpToJavaSemanticEquivalenceTests: 15 个语义等价性测试 - 从 164 增加到 179 总测试 (168 通过, 0 失败) 新增文件: - Pipeline/Converters/NullCoalescingConverter.cs - Pipeline/Converters/SwitchExpressionConverter.cs - Pipeline/Converters/PrimaryConstructorConverter.cs - Converters/CSharpToCppStrategy.cs + CppCodeGenerator.cs - Tests/Semantics/CSharpToJavaSemanticEquivalenceTests.cs - Tests/CSharpAdvancedFeaturesTests.cs + CSharp13FeatureTests.cs Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
This commit is contained in:
+52
-46
@@ -1,46 +1,52 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.0.31903.59
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.Core", "CodePlay.Core\CodePlay.Core.csproj", "{6C296C09-172A-4730-ABA5-0D31FA4CCC52}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.Web", "CodePlay.Web\CodePlay.Web.csproj", "{A6FC59FF-048E-4B6E-8A96-CDC167FE7653}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.CLI", "CodePlay.CLI\CodePlay.CLI.csproj", "{FA101DCD-3B12-492D-90A0-5E38B0F07490}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.Tests", "CodePlay.Tests\CodePlay.Tests.csproj", "{71E9A854-8329-40F7-BA23-DF75CF799074}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.WebUI", "CodePlay.WebUI\CodePlay.WebUI.csproj", "{8D9840AE-AAE5-4D83-8470-6394687DC142}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6C296C09-172A-4730-ABA5-0D31FA4CCC52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{6C296C09-172A-4730-ABA5-0D31FA4CCC52}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6C296C09-172A-4730-ABA5-0D31FA4CCC52}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6C296C09-172A-4730-ABA5-0D31FA4CCC52}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A6FC59FF-048E-4B6E-8A96-CDC167FE7653}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A6FC59FF-048E-4B6E-8A96-CDC167FE7653}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A6FC59FF-048E-4B6E-8A96-CDC167FE7653}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A6FC59FF-048E-4B6E-8A96-CDC167FE7653}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{FA101DCD-3B12-492D-90A0-5E38B0F07490}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FA101DCD-3B12-492D-90A0-5E38B0F07490}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FA101DCD-3B12-492D-90A0-5E38B0F07490}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FA101DCD-3B12-492D-90A0-5E38B0F07490}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{71E9A854-8329-40F7-BA23-DF75CF799074}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{71E9A854-8329-40F7-BA23-DF75CF799074}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{71E9A854-8329-40F7-BA23-DF75CF799074}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{71E9A854-8329-40F7-BA23-DF75CF799074}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8D9840AE-AAE5-4D83-8470-6394687DC142}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8D9840AE-AAE5-4D83-8470-6394687DC142}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8D9840AE-AAE5-4D83-8470-6394687DC142}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8D9840AE-AAE5-4D83-8470-6394687DC142}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.0.31903.59
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.Core", "CodePlay.Core\CodePlay.Core.csproj", "{8A4D5D0E-9F3B-4D6E-8F2A-1C3D5E7F9A0B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.Persistence", "CodePlay.Persistence\CodePlay.Persistence.csproj", "{9B5E6E1F-0A4C-5E7F-9A3B-2D4E6F8A1C3D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.WebAPI", "CodePlay.WebAPI\CodePlay.WebAPI.csproj", "{0C6F7F2A-1B5D-6F8A-0B4C-3E5F7A9B2D4E}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.CLI", "CodePlay.CLI\CodePlay.CLI.csproj", "{FA101DCD-3B12-492D-90A0-5E38B0F07490}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.Tests", "CodePlay.Tests\CodePlay.Tests.csproj", "{1D7A8B3C-2E6F-7A9B-1C5D-4F6A8B2C4E5F}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodePlay.WebUI", "CodePlay.WebUI\CodePlay.WebUI.csproj", "{8D9840AE-AAE5-4D83-8470-6394687DC142}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{8A4D5D0E-9F3B-4D6E-8F2A-1C3D5E7F9A0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8A4D5D0E-9F3B-4D6E-8F2A-1C3D5E7F9A0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8A4D5D0E-9F3B-4D6E-8F2A-1C3D5E7F9A0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8A4D5D0E-9F3B-4D6E-8F2A-1C3D5E7F9A0B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9B5E6E1F-0A4C-5E7F-9A3B-2D4E6F8A1C3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9B5E6E1F-0A4C-5E7F-9A3B-2D4E6F8A1C3D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9B5E6E1F-0A4C-5E7F-9A3B-2D4E6F8A1C3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9B5E6E1F-0A4C-5E7F-9A3B-2D4E6F8A1C3D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0C6F7F2A-1B5D-6F8A-0B4C-3E5F7A9B2D4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0C6F7F2A-1B5D-6F8A-0B4C-3E5F7A9B2D4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0C6F7F2A-1B5D-6F8A-0B4C-3E5F7A9B2D4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0C6F7F2A-1B5D-6F8A-0B4C-3E5F7A9B2D4E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{FA101DCD-3B12-492D-90A0-5E38B0F07490}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FA101DCD-3B12-492D-90A0-5E38B0F07490}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FA101DCD-3B12-492D-90A0-5E38B0F07490}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FA101DCD-3B12-492D-90A0-5E38B0F07490}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1D7A8B3C-2E6F-7A9B-1C5D-4F6A8B2C4E5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1D7A8B3C-2E6F-7A9B-1C5D-4F6A8B2C4E5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1D7A8B3C-2E6F-7A9B-1C5D-4F6A8B2C4E5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1D7A8B3C-2E6F-7A9B-1C5D-4F6A8B2C4E5F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8D9840AE-AAE5-4D83-8470-6394687DC142}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8D9840AE-AAE5-4D83-8470-6394687DC142}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8D9840AE-AAE5-4D83-8470-6394687DC142}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8D9840AE-AAE5-4D83-8470-6394687DC142}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
Reference in New Issue
Block a user