From 54de75bdf484addb2b8ce1991e3ebb2662a451f9 Mon Sep 17 00:00:00 2001 From: Richard Van Tassel Date: Sun, 23 Feb 2025 13:31:46 -0500 Subject: [PATCH 1/7] Adds check for local variable in scope operator check --- DMCompiler/DM/Builders/DMExpressionBuilder.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/DMCompiler/DM/Builders/DMExpressionBuilder.cs b/DMCompiler/DM/Builders/DMExpressionBuilder.cs index 9ef101ba4a..b6ebf7d374 100644 --- a/DMCompiler/DM/Builders/DMExpressionBuilder.cs +++ b/DMCompiler/DM/Builders/DMExpressionBuilder.cs @@ -645,8 +645,13 @@ private DMExpression BuildScopeIdentifier(DMASTScopeIdentifier scopeIdentifier, // This is the same behaviour as in BYOND, but BYOND simply raises an undefined var error. // We want to give end users an explanation at least. if (scopeMode is Normal && ctx.Proc != null) - return BadExpression(WarningCode.BadExpression, identifier.Location, - "Use of \"type::\" and \"parent_type::\" outside of a context is forbidden"); + if (ctx.Proc.GetLocalVariable(identifier.Identifier) != null) { + // actually - it's referring to a local variable named "type" or "parent_type"... just do the usual thing + expression = BuildExpression(scopeIdentifier.Expression, inferredPath); + } else { + return BadExpression(WarningCode.BadExpression, identifier.Location, + "Use of \"type::\" and \"parent_type::\" outside of a context is forbidden"); + } if (identifier.Identifier == "parent_type") { if (ctx.Type.Parent == null) From 0582e243208325262f728803786732000e7a4ea2 Mon Sep 17 00:00:00 2001 From: Richard Van Tassel Date: Sun, 23 Feb 2025 14:49:27 -0500 Subject: [PATCH 2/7] flow fix, unit tests, reword error --- .../DMProject/Tests/Operators/scope.dm | 17 +++-- .../Operators/scope_parent_type_fails.dm | 10 +++ DMCompiler/DM/Builders/DMExpressionBuilder.cs | 8 +-- OpenDream.sln | 71 ++++++++++++++++++- 4 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm diff --git a/Content.Tests/DMProject/Tests/Operators/scope.dm b/Content.Tests/DMProject/Tests/Operators/scope.dm index d0d144128f..fa61d0e87e 100644 --- a/Content.Tests/DMProject/Tests/Operators/scope.dm +++ b/Content.Tests/DMProject/Tests/Operators/scope.dm @@ -1,7 +1,7 @@ /datum var/static/datum/three/three var/text = "hello" - + var/static/one = "one" /datum/three @@ -9,7 +9,7 @@ var/static/one = "one" text = "hi" var/overridden_text = type::text var/original_text = parent_type::text - + /datum/three/proc/typetest() // initial shorthand, type:: and parent_type:: ASSERT(text == "hi") @@ -21,7 +21,7 @@ var/static/one = "one" ASSERT(src::text == "hi") ASSERT(src::overridden_text == "hi") ASSERT(src::original_text == "hello") - + // proc reference ASSERT(__PROC__ == /datum/three::typetest()) @@ -34,6 +34,11 @@ var/static/one = "one" /proc/return_two() return "two" +/datum/six + var/price = 60 + better + price = parent_type::price + 40 + /proc/RunTest() // global vars and procs ASSERT(::one == "one") @@ -52,10 +57,12 @@ var/static/one = "one" ASSERT(test::three::four.five::six == "3 4 5 6") ASSERT(/datum::three::four.five::six == "3 4 5 6") - // this does not compile in BYOND, that is just a bug + // this does not compile in BYOND, that is just a bug test::three::four.five::six = "7 8 9 10" ASSERT(test::three::four.five::six == "7 8 9 10") ASSERT(/datum::three::four.five::six == "7 8 9 10") - + var/datum/three/threetest = new threetest.typetest() + + var/datum/six/better/test \ No newline at end of file diff --git a/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm b/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm new file mode 100644 index 0000000000..fe731a7ea4 --- /dev/null +++ b/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm @@ -0,0 +1,10 @@ +// COMPILE ERROR OD0011 + +/datum/thing + var/price = 60 + better + proc/test_proc() + price = parent_type::price + 40 + +/proc/RunTest() + var/datum/thing/better/test \ No newline at end of file diff --git a/DMCompiler/DM/Builders/DMExpressionBuilder.cs b/DMCompiler/DM/Builders/DMExpressionBuilder.cs index b6ebf7d374..2bc77c5798 100644 --- a/DMCompiler/DM/Builders/DMExpressionBuilder.cs +++ b/DMCompiler/DM/Builders/DMExpressionBuilder.cs @@ -644,16 +644,16 @@ private DMExpression BuildScopeIdentifier(DMASTScopeIdentifier scopeIdentifier, if (scopeIdentifier.Expression is DMASTIdentifier { Identifier: "type" or "parent_type" } identifier) { // This is the same behaviour as in BYOND, but BYOND simply raises an undefined var error. // We want to give end users an explanation at least. - if (scopeMode is Normal && ctx.Proc != null) + if (scopeMode is Normal && ctx.Proc != null) { if (ctx.Proc.GetLocalVariable(identifier.Identifier) != null) { // actually - it's referring to a local variable named "type" or "parent_type"... just do the usual thing expression = BuildExpression(scopeIdentifier.Expression, inferredPath); } else { return BadExpression(WarningCode.BadExpression, identifier.Location, - "Use of \"type::\" and \"parent_type::\" outside of a context is forbidden"); + "Use of \"type::\" and \"parent_type::\" inside an object proc is only valid when " + + "there is a local variable named \"type\" or \"parent_type\""); } - - if (identifier.Identifier == "parent_type") { + } else if (identifier.Identifier == "parent_type") { if (ctx.Type.Parent == null) return BadExpression(WarningCode.ItemDoesntExist, identifier.Location, $"Type {ctx.Type.Path} does not have a parent"); diff --git a/OpenDream.sln b/OpenDream.sln index aaeca98e9f..ff0bb0fcaa 100644 --- a/OpenDream.sln +++ b/OpenDream.sln @@ -7,18 +7,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestGame", "TestGame", "{72 ProjectSection(SolutionItems) = preProject TestGame\code.dm = TestGame\code.dm TestGame\environment.dme = TestGame\environment.dme - TestGame\renderer_tests.dm = TestGame\renderer_tests.dm TestGame\map_z1.dmm = TestGame\map_z1.dmm TestGame\map_z2.dmm = TestGame\map_z2.dmm TestGame\map_z3.dmm = TestGame\map_z3.dmm + TestGame\renderer_tests.dm = TestGame\renderer_tests.dm TestGame\TestInterface.dmf = TestGame\TestInterface.dmf EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "icons", "icons", "{4F1F4C68-4117-4ECC-8174-D399C1D6C409}" ProjectSection(SolutionItems) = preProject + TestGame\icons\displace.dmi = TestGame\icons\displace.dmi TestGame\icons\mob.dmi = TestGame\icons\mob.dmi TestGame\icons\turf.dmi = TestGame\icons\turf.dmi - TestGame\icons\displace.dmi = TestGame\icons\displace.dmi EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DMCompiler", "DMCompiler\DMCompiler.csproj", "{5CE157DB-7811-499B-97B7-11AC3C2C728F}" @@ -109,6 +109,7 @@ Global Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 Tools|Any CPU = Tools|Any CPU + Tools|x64 = Tools|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -121,6 +122,8 @@ Global {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Release|x64.Build.0 = Release|Any CPU {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Tools|Any CPU.Build.0 = Tools|Any CPU + {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Tools|x64.ActiveCfg = Tools|Any CPU + {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Tools|x64.Build.0 = Tools|Any CPU {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Debug|Any CPU.Build.0 = Debug|Any CPU {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -131,6 +134,8 @@ Global {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Release|x64.Build.0 = Release|Any CPU {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Tools|Any CPU.Build.0 = Tools|Any CPU + {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Tools|x64.ActiveCfg = Tools|Any CPU + {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Tools|x64.Build.0 = Tools|Any CPU {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Debug|Any CPU.Build.0 = Debug|Any CPU {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -141,6 +146,8 @@ Global {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Release|x64.Build.0 = Release|Any CPU {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Tools|Any CPU.Build.0 = Tools|Any CPU + {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Tools|x64.ActiveCfg = Tools|Any CPU + {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Tools|x64.Build.0 = Tools|Any CPU {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Debug|Any CPU.Build.0 = Debug|Any CPU {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -151,6 +158,8 @@ Global {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Release|x64.Build.0 = Release|Any CPU {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Tools|Any CPU.Build.0 = Tools|Any CPU + {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Tools|x64.ActiveCfg = Tools|Any CPU + {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Tools|x64.Build.0 = Tools|Any CPU {2E744769-C54D-4F43-9592-C2743B3BA95F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2E744769-C54D-4F43-9592-C2743B3BA95F}.Debug|Any CPU.Build.0 = Debug|Any CPU {2E744769-C54D-4F43-9592-C2743B3BA95F}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -161,6 +170,8 @@ Global {2E744769-C54D-4F43-9592-C2743B3BA95F}.Release|x64.Build.0 = Release|Any CPU {2E744769-C54D-4F43-9592-C2743B3BA95F}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {2E744769-C54D-4F43-9592-C2743B3BA95F}.Tools|Any CPU.Build.0 = Tools|Any CPU + {2E744769-C54D-4F43-9592-C2743B3BA95F}.Tools|x64.ActiveCfg = Tools|Any CPU + {2E744769-C54D-4F43-9592-C2743B3BA95F}.Tools|x64.Build.0 = Tools|Any CPU {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -171,6 +182,8 @@ Global {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Release|x64.Build.0 = Release|Any CPU {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Tools|Any CPU.Build.0 = Tools|Any CPU + {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Tools|x64.ActiveCfg = Tools|Any CPU + {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Tools|x64.Build.0 = Tools|Any CPU {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Debug|Any CPU.Build.0 = Debug|Any CPU {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -181,6 +194,8 @@ Global {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Release|x64.Build.0 = Release|Any CPU {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Tools|Any CPU.Build.0 = Tools|Any CPU + {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Tools|x64.ActiveCfg = Tools|Any CPU + {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Tools|x64.Build.0 = Tools|Any CPU {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Debug|Any CPU.Build.0 = Debug|Any CPU {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -191,6 +206,8 @@ Global {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Release|x64.Build.0 = Release|Any CPU {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Tools|Any CPU.Build.0 = Tools|Any CPU + {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Tools|x64.ActiveCfg = Tools|Any CPU + {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Tools|x64.Build.0 = Tools|Any CPU {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Debug|Any CPU.Build.0 = Debug|Any CPU {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -201,6 +218,8 @@ Global {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Release|x64.Build.0 = Release|Any CPU {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Tools|Any CPU.Build.0 = Tools|Any CPU + {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Tools|x64.ActiveCfg = Tools|Any CPU + {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Tools|x64.Build.0 = Tools|Any CPU {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Debug|Any CPU.Build.0 = Debug|Any CPU {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -211,6 +230,8 @@ Global {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Release|x64.Build.0 = Release|Any CPU {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Tools|Any CPU.Build.0 = Tools|Any CPU + {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Tools|x64.ActiveCfg = Tools|Any CPU + {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Tools|x64.Build.0 = Tools|Any CPU {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Debug|Any CPU.Build.0 = Debug|Any CPU {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -221,6 +242,8 @@ Global {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Release|x64.Build.0 = Release|Any CPU {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Tools|Any CPU.Build.0 = Tools|Any CPU + {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Tools|x64.ActiveCfg = Tools|Any CPU + {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Tools|x64.Build.0 = Tools|Any CPU {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Debug|Any CPU.Build.0 = Debug|Any CPU {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -231,6 +254,8 @@ Global {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Release|x64.Build.0 = Release|Any CPU {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Tools|Any CPU.Build.0 = Tools|Any CPU + {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Tools|x64.ActiveCfg = Tools|Any CPU + {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Tools|x64.Build.0 = Tools|Any CPU {F5B751BB-FFC3-4331-873A-51315740462A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F5B751BB-FFC3-4331-873A-51315740462A}.Debug|Any CPU.Build.0 = Debug|Any CPU {F5B751BB-FFC3-4331-873A-51315740462A}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -241,6 +266,8 @@ Global {F5B751BB-FFC3-4331-873A-51315740462A}.Release|x64.Build.0 = Release|Any CPU {F5B751BB-FFC3-4331-873A-51315740462A}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {F5B751BB-FFC3-4331-873A-51315740462A}.Tools|Any CPU.Build.0 = Tools|Any CPU + {F5B751BB-FFC3-4331-873A-51315740462A}.Tools|x64.ActiveCfg = Tools|Any CPU + {F5B751BB-FFC3-4331-873A-51315740462A}.Tools|x64.Build.0 = Tools|Any CPU {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Debug|Any CPU.Build.0 = Debug|Any CPU {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -251,6 +278,8 @@ Global {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Release|x64.Build.0 = Release|Any CPU {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Tools|Any CPU.Build.0 = Tools|Any CPU + {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Tools|x64.ActiveCfg = Tools|Any CPU + {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Tools|x64.Build.0 = Tools|Any CPU {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Debug|Any CPU.Build.0 = Debug|Any CPU {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -261,6 +290,8 @@ Global {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Release|x64.Build.0 = Release|Any CPU {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Tools|Any CPU.Build.0 = Tools|Any CPU + {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Tools|x64.ActiveCfg = Tools|Any CPU + {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Tools|x64.Build.0 = Tools|Any CPU {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -271,6 +302,8 @@ Global {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Release|x64.Build.0 = Release|Any CPU {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Tools|Any CPU.Build.0 = Tools|Any CPU + {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Tools|x64.ActiveCfg = Tools|Any CPU + {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Tools|x64.Build.0 = Tools|Any CPU {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Debug|Any CPU.Build.0 = Debug|Any CPU {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -281,6 +314,8 @@ Global {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Release|x64.Build.0 = Release|Any CPU {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Tools|Any CPU.Build.0 = Tools|Any CPU + {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Tools|x64.ActiveCfg = Tools|Any CPU + {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Tools|x64.Build.0 = Tools|Any CPU {ECB7A503-FF99-4E73-927A-B434915A452A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {ECB7A503-FF99-4E73-927A-B434915A452A}.Debug|Any CPU.Build.0 = Debug|Any CPU {ECB7A503-FF99-4E73-927A-B434915A452A}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -291,6 +326,8 @@ Global {ECB7A503-FF99-4E73-927A-B434915A452A}.Release|x64.Build.0 = Release|Any CPU {ECB7A503-FF99-4E73-927A-B434915A452A}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {ECB7A503-FF99-4E73-927A-B434915A452A}.Tools|Any CPU.Build.0 = Tools|Any CPU + {ECB7A503-FF99-4E73-927A-B434915A452A}.Tools|x64.ActiveCfg = Tools|Any CPU + {ECB7A503-FF99-4E73-927A-B434915A452A}.Tools|x64.Build.0 = Tools|Any CPU {C598983A-4FE6-45FF-A6C2-1563394285E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C598983A-4FE6-45FF-A6C2-1563394285E1}.Debug|Any CPU.Build.0 = Debug|Any CPU {C598983A-4FE6-45FF-A6C2-1563394285E1}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -301,6 +338,8 @@ Global {C598983A-4FE6-45FF-A6C2-1563394285E1}.Release|x64.Build.0 = Release|Any CPU {C598983A-4FE6-45FF-A6C2-1563394285E1}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {C598983A-4FE6-45FF-A6C2-1563394285E1}.Tools|Any CPU.Build.0 = Tools|Any CPU + {C598983A-4FE6-45FF-A6C2-1563394285E1}.Tools|x64.ActiveCfg = Tools|Any CPU + {C598983A-4FE6-45FF-A6C2-1563394285E1}.Tools|x64.Build.0 = Tools|Any CPU {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Debug|Any CPU.Build.0 = Debug|Any CPU {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -311,6 +350,8 @@ Global {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Release|x64.Build.0 = Release|Any CPU {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Tools|Any CPU.Build.0 = Tools|Any CPU + {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Tools|x64.ActiveCfg = Tools|Any CPU + {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Tools|x64.Build.0 = Tools|Any CPU {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -321,6 +362,8 @@ Global {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Release|x64.Build.0 = Release|Any CPU {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Tools|Any CPU.Build.0 = Tools|Any CPU + {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Tools|x64.ActiveCfg = Tools|Any CPU + {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Tools|x64.Build.0 = Tools|Any CPU {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Debug|Any CPU.Build.0 = Debug|Any CPU {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -331,6 +374,8 @@ Global {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Release|x64.Build.0 = Release|Any CPU {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Tools|Any CPU.Build.0 = Tools|Any CPU + {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Tools|x64.ActiveCfg = Tools|Any CPU + {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Tools|x64.Build.0 = Tools|Any CPU {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Debug|Any CPU.Build.0 = Debug|Any CPU {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -341,6 +386,8 @@ Global {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Release|x64.Build.0 = Release|Any CPU {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Tools|Any CPU.Build.0 = Tools|Any CPU + {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Tools|x64.ActiveCfg = Tools|Any CPU + {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Tools|x64.Build.0 = Tools|Any CPU {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Debug|Any CPU.Build.0 = Debug|Any CPU {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -351,6 +398,8 @@ Global {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Release|x64.Build.0 = Release|Any CPU {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Tools|Any CPU.Build.0 = Tools|Any CPU + {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Tools|x64.ActiveCfg = Tools|Any CPU + {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Tools|x64.Build.0 = Tools|Any CPU {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Debug|Any CPU.Build.0 = Debug|Any CPU {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -361,6 +410,8 @@ Global {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Release|x64.Build.0 = Release|Any CPU {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Tools|Any CPU.Build.0 = Tools|Any CPU + {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Tools|x64.ActiveCfg = Tools|Any CPU + {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Tools|x64.Build.0 = Tools|Any CPU {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Debug|Any CPU.Build.0 = Debug|Any CPU {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -371,6 +422,8 @@ Global {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Release|x64.Build.0 = Release|Any CPU {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Tools|Any CPU.Build.0 = Tools|Any CPU + {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Tools|x64.ActiveCfg = Tools|Any CPU + {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Tools|x64.Build.0 = Tools|Any CPU {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Debug|Any CPU.Build.0 = Debug|Any CPU {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -381,6 +434,8 @@ Global {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Release|x64.Build.0 = Release|Any CPU {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Tools|Any CPU.Build.0 = Tools|Any CPU + {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Tools|x64.ActiveCfg = Tools|Any CPU + {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Tools|x64.Build.0 = Tools|Any CPU {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Debug|Any CPU.Build.0 = Debug|Any CPU {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -391,6 +446,8 @@ Global {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Release|x64.Build.0 = Release|Any CPU {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Tools|Any CPU.Build.0 = Tools|Any CPU + {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Tools|x64.ActiveCfg = Tools|Any CPU + {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Tools|x64.Build.0 = Tools|Any CPU {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Debug|Any CPU.Build.0 = Debug|Any CPU {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -401,6 +458,8 @@ Global {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Release|x64.Build.0 = Release|Any CPU {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Tools|Any CPU.Build.0 = Tools|Any CPU + {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Tools|x64.ActiveCfg = Tools|Any CPU + {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Tools|x64.Build.0 = Tools|Any CPU {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Debug|Any CPU.Build.0 = Debug|Any CPU {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -411,6 +470,8 @@ Global {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Release|x64.Build.0 = Release|Any CPU {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Tools|Any CPU.ActiveCfg = Debug|Any CPU {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Tools|Any CPU.Build.0 = Debug|Any CPU + {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Tools|x64.ActiveCfg = Release|Any CPU + {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Tools|x64.Build.0 = Release|Any CPU {366AA569-0889-491B-AB00-F038EAEC5221}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {366AA569-0889-491B-AB00-F038EAEC5221}.Debug|Any CPU.Build.0 = Debug|Any CPU {366AA569-0889-491B-AB00-F038EAEC5221}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -421,6 +482,8 @@ Global {366AA569-0889-491B-AB00-F038EAEC5221}.Release|x64.Build.0 = Release|Any CPU {366AA569-0889-491B-AB00-F038EAEC5221}.Tools|Any CPU.ActiveCfg = Debug|Any CPU {366AA569-0889-491B-AB00-F038EAEC5221}.Tools|Any CPU.Build.0 = Debug|Any CPU + {366AA569-0889-491B-AB00-F038EAEC5221}.Tools|x64.ActiveCfg = Release|Any CPU + {366AA569-0889-491B-AB00-F038EAEC5221}.Tools|x64.Build.0 = Release|Any CPU {351729DE-F70D-4136-AD48-1E08A715C1B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {351729DE-F70D-4136-AD48-1E08A715C1B1}.Debug|Any CPU.Build.0 = Debug|Any CPU {351729DE-F70D-4136-AD48-1E08A715C1B1}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -431,6 +494,8 @@ Global {351729DE-F70D-4136-AD48-1E08A715C1B1}.Release|x64.Build.0 = Release|Any CPU {351729DE-F70D-4136-AD48-1E08A715C1B1}.Tools|Any CPU.ActiveCfg = Debug|Any CPU {351729DE-F70D-4136-AD48-1E08A715C1B1}.Tools|Any CPU.Build.0 = Debug|Any CPU + {351729DE-F70D-4136-AD48-1E08A715C1B1}.Tools|x64.ActiveCfg = Release|Any CPU + {351729DE-F70D-4136-AD48-1E08A715C1B1}.Tools|x64.Build.0 = Release|Any CPU {62F71077-77A6-4F0F-9A47-AA341668E194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {62F71077-77A6-4F0F-9A47-AA341668E194}.Debug|Any CPU.Build.0 = Debug|Any CPU {62F71077-77A6-4F0F-9A47-AA341668E194}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -441,6 +506,8 @@ Global {62F71077-77A6-4F0F-9A47-AA341668E194}.Release|x64.Build.0 = Release|Any CPU {62F71077-77A6-4F0F-9A47-AA341668E194}.Tools|Any CPU.ActiveCfg = Debug|Any CPU {62F71077-77A6-4F0F-9A47-AA341668E194}.Tools|Any CPU.Build.0 = Debug|Any CPU + {62F71077-77A6-4F0F-9A47-AA341668E194}.Tools|x64.ActiveCfg = Release|Any CPU + {62F71077-77A6-4F0F-9A47-AA341668E194}.Tools|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From fd1b6a7ca6a5836ddd395490a81a4a3bd020423d Mon Sep 17 00:00:00 2001 From: Richard Van Tassel Date: Sun, 23 Feb 2025 14:53:36 -0500 Subject: [PATCH 3/7] test reformat, remove unintentional sln commit --- .../DMProject/Tests/Operators/scope.dm | 6 +- OpenDream.sln | 71 +------------------ 2 files changed, 5 insertions(+), 72 deletions(-) diff --git a/Content.Tests/DMProject/Tests/Operators/scope.dm b/Content.Tests/DMProject/Tests/Operators/scope.dm index fa61d0e87e..96f884e16c 100644 --- a/Content.Tests/DMProject/Tests/Operators/scope.dm +++ b/Content.Tests/DMProject/Tests/Operators/scope.dm @@ -31,14 +31,14 @@ var/static/one = "one" /datum/five var/static/six = "three four five six" -/proc/return_two() - return "two" - /datum/six var/price = 60 better price = parent_type::price + 40 +/proc/return_two() + return "two" + /proc/RunTest() // global vars and procs ASSERT(::one == "one") diff --git a/OpenDream.sln b/OpenDream.sln index ff0bb0fcaa..aaeca98e9f 100644 --- a/OpenDream.sln +++ b/OpenDream.sln @@ -7,18 +7,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestGame", "TestGame", "{72 ProjectSection(SolutionItems) = preProject TestGame\code.dm = TestGame\code.dm TestGame\environment.dme = TestGame\environment.dme + TestGame\renderer_tests.dm = TestGame\renderer_tests.dm TestGame\map_z1.dmm = TestGame\map_z1.dmm TestGame\map_z2.dmm = TestGame\map_z2.dmm TestGame\map_z3.dmm = TestGame\map_z3.dmm - TestGame\renderer_tests.dm = TestGame\renderer_tests.dm TestGame\TestInterface.dmf = TestGame\TestInterface.dmf EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "icons", "icons", "{4F1F4C68-4117-4ECC-8174-D399C1D6C409}" ProjectSection(SolutionItems) = preProject - TestGame\icons\displace.dmi = TestGame\icons\displace.dmi TestGame\icons\mob.dmi = TestGame\icons\mob.dmi TestGame\icons\turf.dmi = TestGame\icons\turf.dmi + TestGame\icons\displace.dmi = TestGame\icons\displace.dmi EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DMCompiler", "DMCompiler\DMCompiler.csproj", "{5CE157DB-7811-499B-97B7-11AC3C2C728F}" @@ -109,7 +109,6 @@ Global Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 Tools|Any CPU = Tools|Any CPU - Tools|x64 = Tools|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -122,8 +121,6 @@ Global {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Release|x64.Build.0 = Release|Any CPU {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Tools|Any CPU.Build.0 = Tools|Any CPU - {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Tools|x64.ActiveCfg = Tools|Any CPU - {5CE157DB-7811-499B-97B7-11AC3C2C728F}.Tools|x64.Build.0 = Tools|Any CPU {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Debug|Any CPU.Build.0 = Debug|Any CPU {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -134,8 +131,6 @@ Global {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Release|x64.Build.0 = Release|Any CPU {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Tools|Any CPU.Build.0 = Tools|Any CPU - {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Tools|x64.ActiveCfg = Tools|Any CPU - {2879AF7A-6026-4A95-9F6E-37489FFE764E}.Tools|x64.Build.0 = Tools|Any CPU {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Debug|Any CPU.Build.0 = Debug|Any CPU {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -146,8 +141,6 @@ Global {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Release|x64.Build.0 = Release|Any CPU {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Tools|Any CPU.Build.0 = Tools|Any CPU - {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Tools|x64.ActiveCfg = Tools|Any CPU - {260FDE5A-C587-4603-B45D-EF2049F7B2F6}.Tools|x64.Build.0 = Tools|Any CPU {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Debug|Any CPU.Build.0 = Debug|Any CPU {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -158,8 +151,6 @@ Global {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Release|x64.Build.0 = Release|Any CPU {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Tools|Any CPU.Build.0 = Tools|Any CPU - {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Tools|x64.ActiveCfg = Tools|Any CPU - {2C2A8FA2-1C54-4781-A79C-288AB39325FA}.Tools|x64.Build.0 = Tools|Any CPU {2E744769-C54D-4F43-9592-C2743B3BA95F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2E744769-C54D-4F43-9592-C2743B3BA95F}.Debug|Any CPU.Build.0 = Debug|Any CPU {2E744769-C54D-4F43-9592-C2743B3BA95F}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -170,8 +161,6 @@ Global {2E744769-C54D-4F43-9592-C2743B3BA95F}.Release|x64.Build.0 = Release|Any CPU {2E744769-C54D-4F43-9592-C2743B3BA95F}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {2E744769-C54D-4F43-9592-C2743B3BA95F}.Tools|Any CPU.Build.0 = Tools|Any CPU - {2E744769-C54D-4F43-9592-C2743B3BA95F}.Tools|x64.ActiveCfg = Tools|Any CPU - {2E744769-C54D-4F43-9592-C2743B3BA95F}.Tools|x64.Build.0 = Tools|Any CPU {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -182,8 +171,6 @@ Global {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Release|x64.Build.0 = Release|Any CPU {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Tools|Any CPU.Build.0 = Tools|Any CPU - {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Tools|x64.ActiveCfg = Tools|Any CPU - {23AB2010-6763-4A97-99D2-DC10D2F9F3B5}.Tools|x64.Build.0 = Tools|Any CPU {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Debug|Any CPU.Build.0 = Debug|Any CPU {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -194,8 +181,6 @@ Global {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Release|x64.Build.0 = Release|Any CPU {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Tools|Any CPU.Build.0 = Tools|Any CPU - {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Tools|x64.ActiveCfg = Tools|Any CPU - {B2DC3A15-42D9-42CF-B9FC-F1FB5F7E41F7}.Tools|x64.Build.0 = Tools|Any CPU {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Debug|Any CPU.Build.0 = Debug|Any CPU {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -206,8 +191,6 @@ Global {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Release|x64.Build.0 = Release|Any CPU {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Tools|Any CPU.Build.0 = Tools|Any CPU - {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Tools|x64.ActiveCfg = Tools|Any CPU - {7C10CFFC-4EE7-4115-A69A-7B60D19712AB}.Tools|x64.Build.0 = Tools|Any CPU {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Debug|Any CPU.Build.0 = Debug|Any CPU {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -218,8 +201,6 @@ Global {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Release|x64.Build.0 = Release|Any CPU {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Tools|Any CPU.Build.0 = Tools|Any CPU - {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Tools|x64.ActiveCfg = Tools|Any CPU - {F7A90FEE-4B51-4B86-A6ED-F1AD8E4B870E}.Tools|x64.Build.0 = Tools|Any CPU {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Debug|Any CPU.Build.0 = Debug|Any CPU {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -230,8 +211,6 @@ Global {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Release|x64.Build.0 = Release|Any CPU {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Tools|Any CPU.Build.0 = Tools|Any CPU - {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Tools|x64.ActiveCfg = Tools|Any CPU - {432B5670-6BEF-4F3D-A1D0-86F03CBD5BD1}.Tools|x64.Build.0 = Tools|Any CPU {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Debug|Any CPU.Build.0 = Debug|Any CPU {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -242,8 +221,6 @@ Global {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Release|x64.Build.0 = Release|Any CPU {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Tools|Any CPU.Build.0 = Tools|Any CPU - {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Tools|x64.ActiveCfg = Tools|Any CPU - {65C1D5FF-4EED-468D-8452-1BC62ED6C624}.Tools|x64.Build.0 = Tools|Any CPU {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Debug|Any CPU.Build.0 = Debug|Any CPU {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -254,8 +231,6 @@ Global {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Release|x64.Build.0 = Release|Any CPU {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Tools|Any CPU.Build.0 = Tools|Any CPU - {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Tools|x64.ActiveCfg = Tools|Any CPU - {B4312CDA-EE13-4EFC-ACC1-24FB29900F2F}.Tools|x64.Build.0 = Tools|Any CPU {F5B751BB-FFC3-4331-873A-51315740462A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F5B751BB-FFC3-4331-873A-51315740462A}.Debug|Any CPU.Build.0 = Debug|Any CPU {F5B751BB-FFC3-4331-873A-51315740462A}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -266,8 +241,6 @@ Global {F5B751BB-FFC3-4331-873A-51315740462A}.Release|x64.Build.0 = Release|Any CPU {F5B751BB-FFC3-4331-873A-51315740462A}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {F5B751BB-FFC3-4331-873A-51315740462A}.Tools|Any CPU.Build.0 = Tools|Any CPU - {F5B751BB-FFC3-4331-873A-51315740462A}.Tools|x64.ActiveCfg = Tools|Any CPU - {F5B751BB-FFC3-4331-873A-51315740462A}.Tools|x64.Build.0 = Tools|Any CPU {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Debug|Any CPU.Build.0 = Debug|Any CPU {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -278,8 +251,6 @@ Global {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Release|x64.Build.0 = Release|Any CPU {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Tools|Any CPU.Build.0 = Tools|Any CPU - {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Tools|x64.ActiveCfg = Tools|Any CPU - {A34BFECC-B541-48E6-82BA-506BBDB7C40B}.Tools|x64.Build.0 = Tools|Any CPU {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Debug|Any CPU.Build.0 = Debug|Any CPU {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -290,8 +261,6 @@ Global {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Release|x64.Build.0 = Release|Any CPU {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Tools|Any CPU.Build.0 = Tools|Any CPU - {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Tools|x64.ActiveCfg = Tools|Any CPU - {4A4148E4-C82C-45F5-8278-371CA0567EFB}.Tools|x64.Build.0 = Tools|Any CPU {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -302,8 +271,6 @@ Global {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Release|x64.Build.0 = Release|Any CPU {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Tools|Any CPU.Build.0 = Tools|Any CPU - {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Tools|x64.ActiveCfg = Tools|Any CPU - {D5D921FD-A535-40CE-AED2-0526AC4015E4}.Tools|x64.Build.0 = Tools|Any CPU {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Debug|Any CPU.Build.0 = Debug|Any CPU {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -314,8 +281,6 @@ Global {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Release|x64.Build.0 = Release|Any CPU {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Tools|Any CPU.Build.0 = Tools|Any CPU - {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Tools|x64.ActiveCfg = Tools|Any CPU - {7AA19C30-0627-473E-B3D0-08E96FC2D77D}.Tools|x64.Build.0 = Tools|Any CPU {ECB7A503-FF99-4E73-927A-B434915A452A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {ECB7A503-FF99-4E73-927A-B434915A452A}.Debug|Any CPU.Build.0 = Debug|Any CPU {ECB7A503-FF99-4E73-927A-B434915A452A}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -326,8 +291,6 @@ Global {ECB7A503-FF99-4E73-927A-B434915A452A}.Release|x64.Build.0 = Release|Any CPU {ECB7A503-FF99-4E73-927A-B434915A452A}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {ECB7A503-FF99-4E73-927A-B434915A452A}.Tools|Any CPU.Build.0 = Tools|Any CPU - {ECB7A503-FF99-4E73-927A-B434915A452A}.Tools|x64.ActiveCfg = Tools|Any CPU - {ECB7A503-FF99-4E73-927A-B434915A452A}.Tools|x64.Build.0 = Tools|Any CPU {C598983A-4FE6-45FF-A6C2-1563394285E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C598983A-4FE6-45FF-A6C2-1563394285E1}.Debug|Any CPU.Build.0 = Debug|Any CPU {C598983A-4FE6-45FF-A6C2-1563394285E1}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -338,8 +301,6 @@ Global {C598983A-4FE6-45FF-A6C2-1563394285E1}.Release|x64.Build.0 = Release|Any CPU {C598983A-4FE6-45FF-A6C2-1563394285E1}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {C598983A-4FE6-45FF-A6C2-1563394285E1}.Tools|Any CPU.Build.0 = Tools|Any CPU - {C598983A-4FE6-45FF-A6C2-1563394285E1}.Tools|x64.ActiveCfg = Tools|Any CPU - {C598983A-4FE6-45FF-A6C2-1563394285E1}.Tools|x64.Build.0 = Tools|Any CPU {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Debug|Any CPU.Build.0 = Debug|Any CPU {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -350,8 +311,6 @@ Global {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Release|x64.Build.0 = Release|Any CPU {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Tools|Any CPU.Build.0 = Tools|Any CPU - {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Tools|x64.ActiveCfg = Tools|Any CPU - {293D0AEA-7934-461C-9DAD-EC1827CE9DE3}.Tools|x64.Build.0 = Tools|Any CPU {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -362,8 +321,6 @@ Global {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Release|x64.Build.0 = Release|Any CPU {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Tools|Any CPU.Build.0 = Tools|Any CPU - {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Tools|x64.ActiveCfg = Tools|Any CPU - {CBF4EBB8-A6A0-446F-82D4-B1D24FF5B3FF}.Tools|x64.Build.0 = Tools|Any CPU {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Debug|Any CPU.Build.0 = Debug|Any CPU {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -374,8 +331,6 @@ Global {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Release|x64.Build.0 = Release|Any CPU {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Tools|Any CPU.Build.0 = Tools|Any CPU - {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Tools|x64.ActiveCfg = Tools|Any CPU - {2F7EE143-7BED-4731-90F0-E45AD7CC5E02}.Tools|x64.Build.0 = Tools|Any CPU {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Debug|Any CPU.Build.0 = Debug|Any CPU {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -386,8 +341,6 @@ Global {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Release|x64.Build.0 = Release|Any CPU {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Tools|Any CPU.Build.0 = Tools|Any CPU - {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Tools|x64.ActiveCfg = Tools|Any CPU - {DEC65C37-03EF-4064-9C37-12CEB9ABD52A}.Tools|x64.Build.0 = Tools|Any CPU {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Debug|Any CPU.Build.0 = Debug|Any CPU {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -398,8 +351,6 @@ Global {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Release|x64.Build.0 = Release|Any CPU {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Tools|Any CPU.Build.0 = Tools|Any CPU - {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Tools|x64.ActiveCfg = Tools|Any CPU - {5CC537C3-91A8-484F-BA2C-A7D35D38A8B9}.Tools|x64.Build.0 = Tools|Any CPU {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Debug|Any CPU.Build.0 = Debug|Any CPU {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -410,8 +361,6 @@ Global {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Release|x64.Build.0 = Release|Any CPU {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Tools|Any CPU.Build.0 = Tools|Any CPU - {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Tools|x64.ActiveCfg = Tools|Any CPU - {B8383CBC-8AE4-4F3B-9BE0-0D41030E7F68}.Tools|x64.Build.0 = Tools|Any CPU {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Debug|Any CPU.Build.0 = Debug|Any CPU {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -422,8 +371,6 @@ Global {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Release|x64.Build.0 = Release|Any CPU {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Tools|Any CPU.Build.0 = Tools|Any CPU - {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Tools|x64.ActiveCfg = Tools|Any CPU - {0D2AA0E2-B2DA-4EAF-9D7F-3E89257E74CD}.Tools|x64.Build.0 = Tools|Any CPU {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Debug|Any CPU.Build.0 = Debug|Any CPU {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -434,8 +381,6 @@ Global {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Release|x64.Build.0 = Release|Any CPU {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Tools|Any CPU.Build.0 = Tools|Any CPU - {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Tools|x64.ActiveCfg = Tools|Any CPU - {E83EE2FF-1D0D-4268-884A-0CF305F64AAE}.Tools|x64.Build.0 = Tools|Any CPU {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Debug|Any CPU.Build.0 = Debug|Any CPU {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -446,8 +391,6 @@ Global {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Release|x64.Build.0 = Release|Any CPU {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Tools|Any CPU.Build.0 = Tools|Any CPU - {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Tools|x64.ActiveCfg = Tools|Any CPU - {F3735A7F-44A2-4BEE-ADD6-952577D4DC33}.Tools|x64.Build.0 = Tools|Any CPU {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Debug|Any CPU.Build.0 = Debug|Any CPU {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -458,8 +401,6 @@ Global {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Release|x64.Build.0 = Release|Any CPU {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Tools|Any CPU.Build.0 = Tools|Any CPU - {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Tools|x64.ActiveCfg = Tools|Any CPU - {D080D3FA-CE53-40D2-AC9A-940FD9EB5055}.Tools|x64.Build.0 = Tools|Any CPU {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Debug|Any CPU.Build.0 = Debug|Any CPU {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -470,8 +411,6 @@ Global {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Release|x64.Build.0 = Release|Any CPU {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Tools|Any CPU.ActiveCfg = Debug|Any CPU {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Tools|Any CPU.Build.0 = Debug|Any CPU - {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Tools|x64.ActiveCfg = Release|Any CPU - {A86753A5-C9D8-4F3E-B030-BCFC64DF35D6}.Tools|x64.Build.0 = Release|Any CPU {366AA569-0889-491B-AB00-F038EAEC5221}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {366AA569-0889-491B-AB00-F038EAEC5221}.Debug|Any CPU.Build.0 = Debug|Any CPU {366AA569-0889-491B-AB00-F038EAEC5221}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -482,8 +421,6 @@ Global {366AA569-0889-491B-AB00-F038EAEC5221}.Release|x64.Build.0 = Release|Any CPU {366AA569-0889-491B-AB00-F038EAEC5221}.Tools|Any CPU.ActiveCfg = Debug|Any CPU {366AA569-0889-491B-AB00-F038EAEC5221}.Tools|Any CPU.Build.0 = Debug|Any CPU - {366AA569-0889-491B-AB00-F038EAEC5221}.Tools|x64.ActiveCfg = Release|Any CPU - {366AA569-0889-491B-AB00-F038EAEC5221}.Tools|x64.Build.0 = Release|Any CPU {351729DE-F70D-4136-AD48-1E08A715C1B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {351729DE-F70D-4136-AD48-1E08A715C1B1}.Debug|Any CPU.Build.0 = Debug|Any CPU {351729DE-F70D-4136-AD48-1E08A715C1B1}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -494,8 +431,6 @@ Global {351729DE-F70D-4136-AD48-1E08A715C1B1}.Release|x64.Build.0 = Release|Any CPU {351729DE-F70D-4136-AD48-1E08A715C1B1}.Tools|Any CPU.ActiveCfg = Debug|Any CPU {351729DE-F70D-4136-AD48-1E08A715C1B1}.Tools|Any CPU.Build.0 = Debug|Any CPU - {351729DE-F70D-4136-AD48-1E08A715C1B1}.Tools|x64.ActiveCfg = Release|Any CPU - {351729DE-F70D-4136-AD48-1E08A715C1B1}.Tools|x64.Build.0 = Release|Any CPU {62F71077-77A6-4F0F-9A47-AA341668E194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {62F71077-77A6-4F0F-9A47-AA341668E194}.Debug|Any CPU.Build.0 = Debug|Any CPU {62F71077-77A6-4F0F-9A47-AA341668E194}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -506,8 +441,6 @@ Global {62F71077-77A6-4F0F-9A47-AA341668E194}.Release|x64.Build.0 = Release|Any CPU {62F71077-77A6-4F0F-9A47-AA341668E194}.Tools|Any CPU.ActiveCfg = Debug|Any CPU {62F71077-77A6-4F0F-9A47-AA341668E194}.Tools|Any CPU.Build.0 = Debug|Any CPU - {62F71077-77A6-4F0F-9A47-AA341668E194}.Tools|x64.ActiveCfg = Release|Any CPU - {62F71077-77A6-4F0F-9A47-AA341668E194}.Tools|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From e0a83511b24f08f3db1af8ce18b55e2a6a4f8f82 Mon Sep 17 00:00:00 2001 From: Richard Van Tassel Date: Sun, 23 Feb 2025 15:10:19 -0500 Subject: [PATCH 4/7] marks ExpressionContext.DMProc as nullable as DMMParser.ParseCellDefinition can leave it null --- DMCompiler/DM/DMExpression.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DMCompiler/DM/DMExpression.cs b/DMCompiler/DM/DMExpression.cs index 73de3895ba..41c7448bfc 100644 --- a/DMCompiler/DM/DMExpression.cs +++ b/DMCompiler/DM/DMExpression.cs @@ -138,10 +138,10 @@ private void VerifyArgType(DMCompiler compiler, DMProc targetProc, int index, st } } -internal readonly struct ExpressionContext(DMCompiler compiler, DMObject type, DMProc proc) { +internal readonly struct ExpressionContext(DMCompiler compiler, DMObject type, DMProc? proc) { public readonly DMCompiler Compiler = compiler; public readonly DMObject Type = type; - public readonly DMProc Proc = proc; + public readonly DMProc? Proc = proc; public DMObjectTree ObjectTree => Compiler.DMObjectTree; } From f0a290c7199d69ca93ab6bcb4b6bd6cbc2b8ee70 Mon Sep 17 00:00:00 2001 From: Richard Van Tassel Date: Sun, 23 Feb 2025 15:53:19 -0500 Subject: [PATCH 5/7] unit test fixes --- Content.Tests/DMProject/Tests/Operators/scope.dm | 4 +++- .../DMProject/Tests/Operators/scope_parent_type_fails.dm | 5 +---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Content.Tests/DMProject/Tests/Operators/scope.dm b/Content.Tests/DMProject/Tests/Operators/scope.dm index 96f884e16c..5a1dfc928c 100644 --- a/Content.Tests/DMProject/Tests/Operators/scope.dm +++ b/Content.Tests/DMProject/Tests/Operators/scope.dm @@ -41,6 +41,7 @@ var/static/one = "one" /proc/RunTest() // global vars and procs + var/one = "not one" ASSERT(::one == "one") ASSERT(::return_two() == "two") @@ -65,4 +66,5 @@ var/static/one = "one" var/datum/three/threetest = new threetest.typetest() - var/datum/six/better/test \ No newline at end of file + var/datum/six/better/fourtest = new() + ASSERT(fourtest.price == 100) \ No newline at end of file diff --git a/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm b/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm index fe731a7ea4..82564f5fe9 100644 --- a/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm +++ b/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm @@ -4,7 +4,4 @@ var/price = 60 better proc/test_proc() - price = parent_type::price + 40 - -/proc/RunTest() - var/datum/thing/better/test \ No newline at end of file + price = parent_type::price + 40 \ No newline at end of file From cef6c7399b874e6615a70e4f89892960f0795fac Mon Sep 17 00:00:00 2001 From: Richard Van Tassel Date: Sun, 23 Feb 2025 21:29:02 -0500 Subject: [PATCH 6/7] adds warning to scope weirdness, removes nullability marker from ExpressionContext. Proc --- DMCompiler/DM/Builders/DMExpressionBuilder.cs | 2 ++ DMCompiler/DM/DMExpression.cs | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/DMCompiler/DM/Builders/DMExpressionBuilder.cs b/DMCompiler/DM/Builders/DMExpressionBuilder.cs index 2bc77c5798..39af4b1e51 100644 --- a/DMCompiler/DM/Builders/DMExpressionBuilder.cs +++ b/DMCompiler/DM/Builders/DMExpressionBuilder.cs @@ -647,6 +647,8 @@ private DMExpression BuildScopeIdentifier(DMASTScopeIdentifier scopeIdentifier, if (scopeMode is Normal && ctx.Proc != null) { if (ctx.Proc.GetLocalVariable(identifier.Identifier) != null) { // actually - it's referring to a local variable named "type" or "parent_type"... just do the usual thing + Compiler.Emit(WarningCode.SoftReservedKeyword, identifier.Location, + $"Using scope operator :: on a variable named \"type\" or \"parent_type\" is ambiguous. Consider changing the variable name from \"{identifier.Identifier}\"."); expression = BuildExpression(scopeIdentifier.Expression, inferredPath); } else { return BadExpression(WarningCode.BadExpression, identifier.Location, diff --git a/DMCompiler/DM/DMExpression.cs b/DMCompiler/DM/DMExpression.cs index 41c7448bfc..73de3895ba 100644 --- a/DMCompiler/DM/DMExpression.cs +++ b/DMCompiler/DM/DMExpression.cs @@ -138,10 +138,10 @@ private void VerifyArgType(DMCompiler compiler, DMProc targetProc, int index, st } } -internal readonly struct ExpressionContext(DMCompiler compiler, DMObject type, DMProc? proc) { +internal readonly struct ExpressionContext(DMCompiler compiler, DMObject type, DMProc proc) { public readonly DMCompiler Compiler = compiler; public readonly DMObject Type = type; - public readonly DMProc? Proc = proc; + public readonly DMProc Proc = proc; public DMObjectTree ObjectTree => Compiler.DMObjectTree; } From edf0a460ce8211ee7514fce7ff81869ee22c96ac Mon Sep 17 00:00:00 2001 From: Richard Van Tassel Date: Sun, 23 Feb 2025 22:57:13 -0500 Subject: [PATCH 7/7] new test cases, new warning --- Content.Tests/DMProject/Tests/Operators/scope.dm | 10 +++++----- .../Tests/Operators/scope_parent_type_fails.dm | 8 ++++---- DMCompiler/Compiler/CompilerError.cs | 1 + DMCompiler/DM/Builders/DMExpressionBuilder.cs | 2 +- DMCompiler/DMStandard/DefaultPragmaConfig.dm | 1 + 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Content.Tests/DMProject/Tests/Operators/scope.dm b/Content.Tests/DMProject/Tests/Operators/scope.dm index 5a1dfc928c..5147848801 100644 --- a/Content.Tests/DMProject/Tests/Operators/scope.dm +++ b/Content.Tests/DMProject/Tests/Operators/scope.dm @@ -32,9 +32,9 @@ var/static/one = "one" var/static/six = "three four five six" /datum/six - var/price = 60 - better - price = parent_type::price + 40 + var/toughness = 100 + reinforced + toughness = parent_type::toughness + 50 /proc/return_two() return "two" @@ -66,5 +66,5 @@ var/static/one = "one" var/datum/three/threetest = new threetest.typetest() - var/datum/six/better/fourtest = new() - ASSERT(fourtest.price == 100) \ No newline at end of file + var/datum/six/reinforced/fourtest = new() + ASSERT(fourtest.toughness == 150) \ No newline at end of file diff --git a/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm b/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm index 82564f5fe9..dad6979632 100644 --- a/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm +++ b/Content.Tests/DMProject/Tests/Operators/scope_parent_type_fails.dm @@ -1,7 +1,7 @@ // COMPILE ERROR OD0011 -/datum/thing - var/price = 60 - better +/datum/armor + var/toughness = 100 + reinforced proc/test_proc() - price = parent_type::price + 40 \ No newline at end of file + toughness = parent_type::toughness + 50 \ No newline at end of file diff --git a/DMCompiler/Compiler/CompilerError.cs b/DMCompiler/Compiler/CompilerError.cs index 2209b23747..62f07718cc 100644 --- a/DMCompiler/Compiler/CompilerError.cs +++ b/DMCompiler/Compiler/CompilerError.cs @@ -43,6 +43,7 @@ public enum WarningCode { // 2000 - 2999 are reserved for compiler configuration of actual behaviour. SoftReservedKeyword = 2000, // For keywords that SHOULD be reserved, but don't have to be. 'null' and 'defined', for instance + ScopeOperandNamedType = 2001, // Scope operator is used on a var named type or parent_type, maybe unintentionally DuplicateVariable = 2100, DuplicateProcDefinition = 2101, PointlessParentCall = 2205, diff --git a/DMCompiler/DM/Builders/DMExpressionBuilder.cs b/DMCompiler/DM/Builders/DMExpressionBuilder.cs index 39af4b1e51..68452219d2 100644 --- a/DMCompiler/DM/Builders/DMExpressionBuilder.cs +++ b/DMCompiler/DM/Builders/DMExpressionBuilder.cs @@ -647,7 +647,7 @@ private DMExpression BuildScopeIdentifier(DMASTScopeIdentifier scopeIdentifier, if (scopeMode is Normal && ctx.Proc != null) { if (ctx.Proc.GetLocalVariable(identifier.Identifier) != null) { // actually - it's referring to a local variable named "type" or "parent_type"... just do the usual thing - Compiler.Emit(WarningCode.SoftReservedKeyword, identifier.Location, + Compiler.Emit(WarningCode.ScopeOperandNamedType, identifier.Location, $"Using scope operator :: on a variable named \"type\" or \"parent_type\" is ambiguous. Consider changing the variable name from \"{identifier.Identifier}\"."); expression = BuildExpression(scopeIdentifier.Expression, inferredPath); } else { diff --git a/DMCompiler/DMStandard/DefaultPragmaConfig.dm b/DMCompiler/DMStandard/DefaultPragmaConfig.dm index 125a11f244..15f439f14d 100644 --- a/DMCompiler/DMStandard/DefaultPragmaConfig.dm +++ b/DMCompiler/DMStandard/DefaultPragmaConfig.dm @@ -15,6 +15,7 @@ //2000-2999 #pragma SoftReservedKeyword error +#pragma ScopeOperandNamedType warning #pragma DuplicateVariable warning #pragma DuplicateProcDefinition error #pragma PointlessParentCall warning