From 20731a7f8bff2422637654777516914436bc0be3 Mon Sep 17 00:00:00 2001 From: Nikita Balabaev Date: Fri, 30 Jun 2023 17:58:27 +0200 Subject: [PATCH 1/5] Fix #88150 --- docs/project/list-of-diagnostics.md | 2 +- .../Microsoft.Extensions.Options.sln | 112 +++++++++++------- .../gen/DiagDescriptors.cs | 7 ++ .../gen/Parser.cs | 18 ++- .../gen/Resources/Strings.resx | 62 +++++----- .../gen/Resources/xlf/Strings.cs.xlf | 10 ++ .../gen/Resources/xlf/Strings.de.xlf | 10 ++ .../gen/Resources/xlf/Strings.es.xlf | 10 ++ .../gen/Resources/xlf/Strings.fr.xlf | 10 ++ .../gen/Resources/xlf/Strings.it.xlf | 10 ++ .../gen/Resources/xlf/Strings.ja.xlf | 10 ++ .../gen/Resources/xlf/Strings.ko.xlf | 10 ++ .../gen/Resources/xlf/Strings.pl.xlf | 10 ++ .../gen/Resources/xlf/Strings.pt-BR.xlf | 10 ++ .../gen/Resources/xlf/Strings.ru.xlf | 10 ++ .../gen/Resources/xlf/Strings.tr.xlf | 10 ++ .../gen/Resources/xlf/Strings.zh-Hans.xlf | 10 ++ .../gen/Resources/xlf/Strings.zh-Hant.xlf | 10 ++ .../tests/SourceGeneration.Unit.Tests/Main.cs | 73 ++++++++++++ .../Resources/Strings.resx | 60 +++++----- 20 files changed, 366 insertions(+), 98 deletions(-) diff --git a/docs/project/list-of-diagnostics.md b/docs/project/list-of-diagnostics.md index d63a0b836519f..e5ea1f587da07 100644 --- a/docs/project/list-of-diagnostics.md +++ b/docs/project/list-of-diagnostics.md @@ -248,7 +248,7 @@ The diagnostic id values reserved for .NET Libraries analyzer warnings are `SYSL | __`SYSLIB1211`__ | Options validation generator: Unsupported circular references in model types. | | __`SYSLIB1212`__ | Options validation generator: Member potentially missing transitive validation. | | __`SYSLIB1213`__ | Options validation generator: Member potentially missing enumerable validation. | -| __`SYSLIB1214`__ | *_`SYSLIB1214`-`SYSLIB1219` reserved for Microsoft.Extensions.Options.SourceGeneration.* | +| __`SYSLIB1214`__ | Options validation generator: Can't validate constants, static fields or properties. | | __`SYSLIB1215`__ | *_`SYSLIB1214`-`SYSLIB1219` reserved for Microsoft.Extensions.Options.SourceGeneration.* | | __`SYSLIB1216`__ | *_`SYSLIB1214`-`SYSLIB1219` reserved for Microsoft.Extensions.Options.SourceGeneration.* | | __`SYSLIB1217`__ | *_`SYSLIB1214`-`SYSLIB1219` reserved for Microsoft.Extensions.Options.SourceGeneration.* | diff --git a/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln b/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln index 87a7d0a3a5c5e..8f8b01fafa263 100644 --- a/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln +++ b/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln @@ -1,4 +1,8 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.6.33815.320 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F5A58A9D-3C44-4E3C-A661-1CECA84108D9}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{201C7D67-FB1D-4259-9DB4-BF188007F9EA}" @@ -165,6 +169,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7028EE0A-D31 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gen", "gen", "{C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.SourceGeneration", "gen\Microsoft.Extensions.Options.SourceGeneration.csproj", "{2B8ED012-22B5-47DD-A879-FD2AFD4C067D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.SourceGeneration.Unit.Tests", "tests\SourceGeneration.Unit.Tests\Microsoft.Extensions.Options.SourceGeneration.Unit.Tests.csproj", "{D3B6805B-F10E-4A19-99FC-55506892BC18}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.SourceGeneration.Tests", "tests\SourceGenerationTests\Microsoft.Extensions.Options.SourceGeneration.Tests.csproj", "{D7C2C4C7-CF28-4E2B-8749-31D7E6072588}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations", "..\System.ComponentModel.Annotations\src\System.ComponentModel.Annotations.csproj", "{90548F7B-C673-42C9-BD88-A6E6550ECE1C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -487,90 +499,110 @@ Global {D7CEC738-5D2D-4FCB-9268-9650EB01BF31}.Debug|Any CPU.Build.0 = Debug|Any CPU {D7CEC738-5D2D-4FCB-9268-9650EB01BF31}.Release|Any CPU.ActiveCfg = Release|Any CPU {D7CEC738-5D2D-4FCB-9268-9650EB01BF31}.Release|Any CPU.Build.0 = Release|Any CPU + {2B8ED012-22B5-47DD-A879-FD2AFD4C067D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B8ED012-22B5-47DD-A879-FD2AFD4C067D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B8ED012-22B5-47DD-A879-FD2AFD4C067D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B8ED012-22B5-47DD-A879-FD2AFD4C067D}.Release|Any CPU.Build.0 = Release|Any CPU + {D3B6805B-F10E-4A19-99FC-55506892BC18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3B6805B-F10E-4A19-99FC-55506892BC18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3B6805B-F10E-4A19-99FC-55506892BC18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3B6805B-F10E-4A19-99FC-55506892BC18}.Release|Any CPU.Build.0 = Release|Any CPU + {D7C2C4C7-CF28-4E2B-8749-31D7E6072588}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7C2C4C7-CF28-4E2B-8749-31D7E6072588}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7C2C4C7-CF28-4E2B-8749-31D7E6072588}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7C2C4C7-CF28-4E2B-8749-31D7E6072588}.Release|Any CPU.Build.0 = Release|Any CPU + {90548F7B-C673-42C9-BD88-A6E6550ECE1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90548F7B-C673-42C9-BD88-A6E6550ECE1C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90548F7B-C673-42C9-BD88-A6E6550ECE1C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90548F7B-C673-42C9-BD88-A6E6550ECE1C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {F5A58A9D-3C44-4E3C-A661-1CECA84108D9} = {7C1317AA-5F4C-42A4-80F3-856BA5E204AF} - {94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD} = {7C1317AA-5F4C-42A4-80F3-856BA5E204AF} {201C7D67-FB1D-4259-9DB4-BF188007F9EA} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {F656E22F-D8D2-4C8A-A435-01F821A1EA07} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {5EA013FF-FCA7-4F0B-8EB7-14D8472A0830} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {66E30CB1-ADA8-4000-9CEE-56AF40323D23} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {4F936B46-60DA-4EE3-831A-06DC62E1E155} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {5E90DFC5-7D40-42E4-ADF6-7090015B7211} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {0A7AE964-D27E-44A8-85E1-F7A63EBC1BB6} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {732B0524-C9F0-4752-AD19-5275E863C6E0} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {3975BEAC-6DB6-4CF7-B788-AA5B07D6CAC1} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {B559A43F-4502-4D1B-B8C0-2822DDD8A68C} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {DAD9293C-DB4F-45DE-A1BB-D857B02A0764} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {FFA18D8E-A4A1-4F33-80A6-BD7600E71E91} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {0C4F3A7F-AAED-49A0-B8A3-B63CC83B345D} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {91F2FFBB-8954-4707-A4FF-CF5DF23303E2} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {355E3E07-8273-4660-AE2C-8603A0757C4B} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {195DC43D-4D6C-4631-969F-E89547A84A8D} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {DEE4AA87-8EC4-41EE-A2A3-2DF6F494EAF2} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {692645D6-1F0B-4DB0-85EB-7D4042857B2D} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {D4256787-48E0-473F-8C06-359C1BCFC8AB} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {A29E2B35-847A-4304-BF0F-B0DFDC4384A1} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {0F2B84D6-6C2E-4216-A8CD-DF91908F4194} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {AB7510FB-A8B8-426E-A5FB-D292F1423D5A} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {250B3EA5-65A4-4D62-B0F9-5BAAFE53BD7A} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {05161D6B-0451-43B9-B648-71B7628F2A78} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {6A4A1183-A0CF-4270-8EF9-12018D9DADB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {92B8FC4A-A8B5-4799-831D-F82A4BE16B39} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {3C56A02F-4DD8-4253-99E7-34E088A6A9D7} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {6F7512BA-9B15-4395-AE05-C546F0770344} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {36D778AF-5EC3-433F-B03D-EB244DB3C227} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {AA0A7586-364A-4F3B-A9A8-07704D789C23} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {D0932BA0-70BF-4A98-9A30-ED563AB2BFB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {F3B41A00-2E87-49F5-9A48-B03E528A6577} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {6AD51705-102E-4E9D-B62E-6BF19025F3A7} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {39EE5D71-77C5-4633-A47F-1062172FD121} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} + {8A4E7CB4-9983-4B7F-BED9-7A94BAC7CA07} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} + {333116ED-7874-4ECD-91EC-641B8479F696} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {EFFB59C1-CAF4-4347-B996-4C773E1AFAA8} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {56D37CB2-68A3-42D3-AA0E-416813ABAD8B} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {6AAFBB84-9FF1-4E16-9309-6A0A251EE420} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {9EBA168F-239A-46C4-8614-E1D3DB25DD0E} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {5DBF771C-E3DE-4538-BB8B-33029EDA0BCB} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {47B5D904-4787-49E3-9894-31F8B7BE6755} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {5570AF22-F440-4887-BFC9-CB9B557712D3} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {3E400E69-1699-412B-A202-764A967A6E51} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {CB19F6BB-E51B-4B37-AF0F-63348C7FF48E} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {7F2C68B0-A922-4455-BAF3-335E44DF6BB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {E9A3C3E5-78C9-44B3-9C8B-B764DD8DEA08} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {A9E52F82-6B9C-4E07-919B-2B1BFFB21DBB} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {37B75F58-26C3-4BD8-8285-C94F2B00DFD6} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {DA91110F-C553-45E4-93E7-948A93AD09AF} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {CD668E6C-9DD5-456E-A23A-9880A779CA14} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {6AF79D67-4D64-40B4-9276-BCC06B8BAF58} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {02C282B1-23DD-429A-ADC7-345D661557E1} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {3A6E2FA4-B745-4E4B-A82E-98CAD1177E77} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {D0CAEF2C-FB83-4C32-80BD-1F516AD13FAA} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {9BA945E7-0970-4CA2-A54B-F8D9B3E69917} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD} = {7C1317AA-5F4C-42A4-80F3-856BA5E204AF} {36C471D8-1D7A-4C81-8B05-2EED0984FBB4} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {AAB5D437-EFB2-4BAC-BA0F-7323BA691B89} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {3CE1FDFB-3BFD-463E-AC82-4E5302F0AB2F} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} {6AE427EF-C018-4075-A4C8-BF3831C5F88C} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} {6A1A3AFF-C018-498A-80A0-532396132AD5} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {11773B90-8DAC-4B51-A4B6-7C64FD6942BD} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {990280EA-CDBD-480A-8224-DBCBA8B6D6DB} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {B0249028-C048-40B8-B102-BCE7928965C3} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {9F1389B4-A9A5-422F-89F5-A2D431292F0C} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {6E2398EA-A64A-4493-A79B-63D2F072A690} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {F656E22F-D8D2-4C8A-A435-01F821A1EA07} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {66E30CB1-ADA8-4000-9CEE-56AF40323D23} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {0A7AE964-D27E-44A8-85E1-F7A63EBC1BB6} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {3975BEAC-6DB6-4CF7-B788-AA5B07D6CAC1} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {DAD9293C-DB4F-45DE-A1BB-D857B02A0764} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {0C4F3A7F-AAED-49A0-B8A3-B63CC83B345D} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {355E3E07-8273-4660-AE2C-8603A0757C4B} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {DEE4AA87-8EC4-41EE-A2A3-2DF6F494EAF2} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {D4256787-48E0-473F-8C06-359C1BCFC8AB} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {0F2B84D6-6C2E-4216-A8CD-DF91908F4194} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {250B3EA5-65A4-4D62-B0F9-5BAAFE53BD7A} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {6A4A1183-A0CF-4270-8EF9-12018D9DADB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {3C56A02F-4DD8-4253-99E7-34E088A6A9D7} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {36D778AF-5EC3-433F-B03D-EB244DB3C227} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {D0932BA0-70BF-4A98-9A30-ED563AB2BFB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {6AD51705-102E-4E9D-B62E-6BF19025F3A7} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {56D37CB2-68A3-42D3-AA0E-416813ABAD8B} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {9EBA168F-239A-46C4-8614-E1D3DB25DD0E} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {47B5D904-4787-49E3-9894-31F8B7BE6755} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {3E400E69-1699-412B-A202-764A967A6E51} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {7F2C68B0-A922-4455-BAF3-335E44DF6BB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {A9E52F82-6B9C-4E07-919B-2B1BFFB21DBB} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {DA91110F-C553-45E4-93E7-948A93AD09AF} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {6AF79D67-4D64-40B4-9276-BCC06B8BAF58} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {3A6E2FA4-B745-4E4B-A82E-98CAD1177E77} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {9BA945E7-0970-4CA2-A54B-F8D9B3E69917} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {AAB5D437-EFB2-4BAC-BA0F-7323BA691B89} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {429C9D71-4BBD-489D-9C86-EC240F652008} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {11773B90-8DAC-4B51-A4B6-7C64FD6942BD} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} {99007CDD-4840-4B94-8A8A-FECF72BCEE3F} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {9175023F-6982-45CD-B360-C4FC1E145B25} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {59D31D62-3BF9-4F4A-9FF7-3A61F297F714} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {D7CEC738-5D2D-4FCB-9268-9650EB01BF31} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {4F936B46-60DA-4EE3-831A-06DC62E1E155} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} - {39EE5D71-77C5-4633-A47F-1062172FD121} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} - {8A4E7CB4-9983-4B7F-BED9-7A94BAC7CA07} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} - {333116ED-7874-4ECD-91EC-641B8479F696} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} + {990280EA-CDBD-480A-8224-DBCBA8B6D6DB} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} {62065BFE-5477-44DD-A328-582B0F050EC3} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {02425B61-8D98-4F4A-88AE-F77D4837DF9E} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {E0460280-2F49-474C-862D-1787D9244CC8} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} + {B0249028-C048-40B8-B102-BCE7928965C3} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {9F1389B4-A9A5-422F-89F5-A2D431292F0C} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {59D31D62-3BF9-4F4A-9FF7-3A61F297F714} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {B5F25A78-B7FB-460B-9B71-BE82D22923FD} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {E06CE29E-15EB-4C0E-97B7-4367FFEDD98D} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {9021FD06-E11E-42DE-87EF-A1040BA5DB56} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} + {6E2398EA-A64A-4493-A79B-63D2F072A690} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {D7CEC738-5D2D-4FCB-9268-9650EB01BF31} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {2B8ED012-22B5-47DD-A879-FD2AFD4C067D} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} + {D3B6805B-F10E-4A19-99FC-55506892BC18} = {7C1317AA-5F4C-42A4-80F3-856BA5E204AF} + {D7C2C4C7-CF28-4E2B-8749-31D7E6072588} = {7C1317AA-5F4C-42A4-80F3-856BA5E204AF} + {90548F7B-C673-42C9-BD88-A6E6550ECE1C} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {FE89CDC6-6313-439C-85D7-A81D5DF593E9} diff --git a/src/libraries/Microsoft.Extensions.Options/gen/DiagDescriptors.cs b/src/libraries/Microsoft.Extensions.Options/gen/DiagDescriptors.cs index e76363fee0e94..10ab32c19c0bd 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/DiagDescriptors.cs +++ b/src/libraries/Microsoft.Extensions.Options/gen/DiagDescriptors.cs @@ -91,5 +91,12 @@ internal sealed class DiagDescriptors : DiagDescriptorsBase messageFormat: SR.PotentiallyMissingEnumerableValidationMessage, category: Category, defaultSeverity: DiagnosticSeverity.Warning); + + public static DiagnosticDescriptor CantValidateStaticOrConstMember { get; } = Make( + id: "SYSLIB1214", + title: SR.CantValidateStaticOrConstMemberTitle, + messageFormat: SR.CantValidateStaticOrConstMemberMessage, + category: Category, + defaultSeverity: DiagnosticSeverity.Warning); } } diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs b/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs index 2a9215c676071..0dd4f13fad7e9 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs +++ b/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs @@ -448,6 +448,20 @@ private List GetMembersToValidate(ITypeSymbol modelType, bool s } } + bool validationAttributeIsApplied = validationAttrs.Count > 0 || transValidatorTypeName is not null || enumerationValidatorTypeName is not null; + + if (member.IsStatic) + { + // generate an error if the member is static and has a validation attribute applied + if (validationAttributeIsApplied) + { + Diag(DiagDescriptors.CantValidateStaticOrConstMember, member.GetLocation(), member.Name); + } + + // don't validate the member in any case + return null; + } + // generate a warning if the field/property seems like it should be transitively validated if (transValidatorTypeName == null && speculate && memberType.SpecialType == SpecialType.None) { @@ -462,7 +476,7 @@ private List GetMembersToValidate(ITypeSymbol modelType, bool s } // generate a warning if the field/property seems like it should be enumerated - if (enumerationValidatorTypeName == null && speculate) + if (enumerationValidatorTypeName == null && speculate && memberType.SpecialType != SpecialType.System_String) { var enumeratedType = GetEnumeratedType(memberType); if (enumeratedType is not null) @@ -478,7 +492,7 @@ private List GetMembersToValidate(ITypeSymbol modelType, bool s } } - if (validationAttrs.Count > 0 || transValidatorTypeName is not null || enumerationValidatorTypeName is not null) + if (validationAttributeIsApplied) { return new( member.Name, diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx b/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx index 021f345f58cae..5f25ac1e2ee6d 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx @@ -1,17 +1,17 @@  - @@ -135,6 +135,12 @@ Can't use 'ValidateObjectMembersAttribute' or 'ValidateEnumeratedItemsAttribute' on fields or properties with open generic types. + + Can't validate constants, static fields or properties. + + + Can't apply validation attributes to constant or static member {0}. + There is a circular type reference involving type {0} preventing it from being used for static validation. @@ -195,4 +201,4 @@ Validators used for transitive or enumerable validation must have a constructor with no parameters. - + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.cs.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.cs.xlf index e2488a7f17f6f..f0a0baa0de4cd 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.cs.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.cs.xlf @@ -32,6 +32,16 @@ U polí nebo vlastností s otevřenými obecnými typy nelze použít ValidateObjectMembersAttribute nebo ValidateEnumeratedItemsAttribute. + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. Existuje cyklický odkaz obsahující typ {0}, který brání jeho použití pro statické ověření. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.de.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.de.xlf index df204efb8a5d6..d46a13275ff72 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.de.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.de.xlf @@ -32,6 +32,16 @@ "ValidateObjectMembersAttribute" oder "ValidateEnumeratedItemsAttribute" kann nicht für Felder oder Eigenschaften mit offenen generischen Typen verwendet werden. + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. Es gibt einen Zirkelverweis, der den Typ "{0}" verhindert, dass er für die statische Validierung verwendet wird. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.es.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.es.xlf index 184bbb39d6dc4..9f7cabed86bb0 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.es.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.es.xlf @@ -32,6 +32,16 @@ No se puede usar “ValidateObjectMembersAttribute” o “ValidateEnumeratedItemsAttribute” en campos o propiedades con tipos genéricos abiertos. + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. Hay una referencia de tipo circular que implica al tipo {0} que impide que se use para la validación estática. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.fr.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.fr.xlf index cb0596b5def02..08d6c8ae14e95 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.fr.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.fr.xlf @@ -32,6 +32,16 @@ Impossible d’utiliser 'ValidateObjectMembersAttribute' ou 'ValidateEnumeratedItemsAttribute' sur des champs ou des propriétés avec des types génériques ouverts. + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. Une référence de type circulaire implique un type {0} l’empêche d’être utilisé pour la validation statique. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.it.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.it.xlf index 2bbb76dea399e..f3d8099bc18c9 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.it.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.it.xlf @@ -32,6 +32,16 @@ Non è possibile usare 'ValidateObjectMembersAttribute' o 'ValidateEnumeratedItemsAttribute' nei campi o nelle proprietà con tipi generici aperti. + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. Esiste un riferimento di tipo circolare che interessa il tipo {0} e ne impedisce l'utilizzo per la convalida statica. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ja.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ja.xlf index 00a2e4f7f9c3f..7a84c0e65ea3e 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ja.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ja.xlf @@ -32,6 +32,16 @@ 'ValidateObjectMembersAttribute' または 'ValidateEnumeratedItemsAttribute' は、オープンジェネリック型を持つフィールドまたはプロパティでは使用できません。 + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. 型{0}を含む循環型参照があるため、静的検証に使用できません。 diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ko.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ko.xlf index 14137b6f600c6..f2a04b48a262c 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ko.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ko.xlf @@ -32,6 +32,16 @@ 열린 제네릭 형식의 필드 또는 속성에는 'ValidateObjectMembersAttribute' 또는 'ValidateEnumeratedItemsAttribute'를 사용할 수 없습니다. + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. 정적 유효성 검사에 사용할 수 없으므로 형식 {0} 관련된 순환 형식 참조가 있습니다. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pl.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pl.xlf index 5766d2aa6bfda..2446bdd9be080 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pl.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pl.xlf @@ -32,6 +32,16 @@ Nie można użyć atrybutu „ValidateObjectMembersAttribute” lub „ValidateEnumeratedItemsAttribute” w polach lub właściwościach z otwartymi typami ogólnymi. + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. Istnieje cykliczne odwołanie do typu dotyczące typu {0} uniemożliwiające użycie go do weryfikacji statycznej. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pt-BR.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pt-BR.xlf index b226f9c074d43..f907c546bed7a 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pt-BR.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pt-BR.xlf @@ -32,6 +32,16 @@ Não é possível usar "ValidateObjectMembersAttribute" ou "ValidateEnumeratedItemsAttribute" em campos ou propriedades com tipos genéricos abertos. + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. Há uma referência de tipo circular que envolve o tipo {0} que a impede de ser usada para validação estática. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ru.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ru.xlf index 3bb2c0e505c51..58ab382f203cb 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ru.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ru.xlf @@ -32,6 +32,16 @@ Нельзя использовать "ValidateObjectMembersAttribute" или "ValidateEnumeratedItemsAttribute" для полей или свойств с открытыми универсальными типами. + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. Существует циклическая ссылка на тип, включающая тип {0}, предотвращающий его использование для статической проверки. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.tr.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.tr.xlf index 6d56473c74d03..56765a180bdd5 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.tr.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.tr.xlf @@ -32,6 +32,16 @@ Açık genel türleri olan alanlarda veya özelliklerde 'ValidateObjectMembersAttribute' veya 'ValidateEnumeratedItemsAttribute' kullanılamaz. + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. Statik doğrulama için kullanılmasını engelleyen {0} türü içeren döngüsel bir tür başvurusu var. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hans.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hans.xlf index edd5917cae6b1..209e5a59a66a1 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hans.xlf @@ -32,6 +32,16 @@ 不能对具有开放泛型类型的字段或属性使用 "ValidateObjectMembersAttribute" 或 "ValidateEnumeratedItemsAttribute"。 + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. 存在一个循环类型引用,其中涉及的类型 {0} 阻止将其用于静态验证。 diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hant.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hant.xlf index ee2d9774e8fef..94a5673b55e2a 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hant.xlf @@ -32,6 +32,16 @@ 無法在有開放式泛型型別的欄位或屬性上使用 'ValidateObjectMembersAttribute' 或 'ValidateEnumeratedItemsAttribute'。 + + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. + + + + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. + + There is a circular type reference involving type {0} preventing it from being used for static validation. 有涉及類型 {0} 的循環類型參考讓它無法用於靜態驗證。 diff --git a/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Main.cs b/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Main.cs index ad094f991803f..c20ca8302d1fc 100644 --- a/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Main.cs +++ b/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Main.cs @@ -163,6 +163,79 @@ public partial class FirstValidator : IValidateOptions Assert.Equal(DiagDescriptors.PotentiallyMissingEnumerableValidation.Id, diagnostics[1].Id); } + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotBrowser))] + public async Task IgnoredStaticMembers() + { + var (d, _) = await RunGenerator(@" + public class FirstModel + { + // Since we ignore static members, we shouldn't check SecondModel, + // and shouldn't emit the 'SYSLIB1212' warning about potentially missing transitive validation + public static SecondModel? P1 { get; set; } + + public static SecondModel P2 = new(); + + public static System.Collections.Generic.IList? P3 { get; set; } + + public const SecondModel P4 = null; + + [Required] + public string Name { get; set; } = nameof(FirstModel); + } + + public class SecondModel + { + [Required] + public string? P3; + } + + [OptionsValidator] + public partial class FirstModelValidator : IValidateOptions + { + } + "); + + Assert.Empty(d); + } + + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotBrowser))] + public async Task ValidationAttributeOnStaticMember() + { + var (d, _) = await RunGenerator(@" + public class FirstModel + { + [Required] + public static string? P1 { get; set; } + + [Required] + public const string? P1; + + [ValidateObjectMembers] + public static SecondModel P2 = new(); + + [ValidateEnumeratedItems] + public static System.Collections.Generic.IList? P3 { get; set; } + + [Required] + public string Name { get; set; } = nameof(FirstModel); + } + + public class SecondModel + { + [Required] + public string? P3; + } + + [OptionsValidator] + public partial class FirstModelValidator : IValidateOptions + { + } + "); + + Assert.Equal(4, d.Count); + Assert.All(d, x => Assert.Equal(DiagDescriptors.CantValidateStaticOrConstMember.Id, x.Id)); + } + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotBrowser))] public async Task CircularTypeReferences() { diff --git a/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx b/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx index 1673d4621545b..d2f1a3e99c958 100644 --- a/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx +++ b/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx @@ -1,17 +1,17 @@  - @@ -198,4 +198,10 @@ Member potentially missing transitive validation. + + Can't validate constants, static fields or properties. + + + Can't apply validation attributes to constant or static member {0}. + \ No newline at end of file From c1493e601c143bcc1ab3e15ae52c71ce20203d72 Mon Sep 17 00:00:00 2001 From: Nikita Balabaev Date: Fri, 30 Jun 2023 18:17:59 +0200 Subject: [PATCH 2/5] Fix resource strings. --- .../gen/Resources/Strings.resx | 4 ++-- .../gen/Resources/xlf/Strings.cs.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.de.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.es.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.fr.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.it.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.ja.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.ko.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.pl.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.pt-BR.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.ru.xlf | 10 +++++----- .../gen/Resources/xlf/Strings.tr.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.zh-Hans.xlf | 8 ++++---- .../gen/Resources/xlf/Strings.zh-Hant.xlf | 8 ++++---- .../SourceGeneration.Unit.Tests/Resources/Strings.resx | 4 ++-- 15 files changed, 57 insertions(+), 57 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx b/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx index 5f25ac1e2ee6d..30ea0ebaf5a12 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx @@ -136,10 +136,10 @@ Can't use 'ValidateObjectMembersAttribute' or 'ValidateEnumeratedItemsAttribute' on fields or properties with open generic types. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. There is a circular type reference involving type {0} preventing it from being used for static validation. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.cs.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.cs.xlf index f0a0baa0de4cd..7d241c4e1efb0 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.cs.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.cs.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.de.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.de.xlf index d46a13275ff72..926cc182d6353 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.de.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.de.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.es.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.es.xlf index 9f7cabed86bb0..26ceb1b83d61d 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.es.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.es.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.fr.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.fr.xlf index 08d6c8ae14e95..47973e86f2f56 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.fr.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.fr.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.it.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.it.xlf index f3d8099bc18c9..3ca838dbbb396 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.it.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.it.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ja.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ja.xlf index 7a84c0e65ea3e..64929dd3ae7ca 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ja.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ja.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ko.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ko.xlf index f2a04b48a262c..98d9d90356ad7 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ko.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ko.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pl.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pl.xlf index 2446bdd9be080..ce7e2e2be8173 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pl.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pl.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pt-BR.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pt-BR.xlf index f907c546bed7a..522506b4147da 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pt-BR.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.pt-BR.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ru.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ru.xlf index 58ab382f203cb..61ac1d7432964 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ru.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.ru.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Не удается применить атрибуты проверки к константе, статическому полю или свойству {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Не удается проверить статические поля или свойства, в т.ч. константы. @@ -69,7 +69,7 @@ Can't validate private fields or properties. - Не удается проверить частные поля или свойства. + Не удается проверить приватные поля или свойства. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.tr.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.tr.xlf index 56765a180bdd5..a0d0ab6255b00 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.tr.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.tr.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hans.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hans.xlf index 209e5a59a66a1..f21739b0f10f8 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hans.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hant.xlf b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hant.xlf index 94a5673b55e2a..9d05a46f55568 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/xlf/Strings.zh-Hant.xlf @@ -33,13 +33,13 @@ - Can't validate constants, static fields or properties. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. + Can't validate constants, static fields or properties. diff --git a/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx b/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx index d2f1a3e99c958..b361abd3ef3df 100644 --- a/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx +++ b/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx @@ -199,9 +199,9 @@ Member potentially missing transitive validation. - Can't validate constants, static fields or properties. + Can't apply validation attributes to constant or static member {0}. - Can't apply validation attributes to constant or static member {0}. + Can't validate constants, static fields or properties. \ No newline at end of file From b36f611b4473c171d74d4cc5197be75179338d00 Mon Sep 17 00:00:00 2001 From: Nikita Balabaev Date: Sat, 1 Jul 2023 11:00:38 +0200 Subject: [PATCH 3/5] fixes --- src/libraries/Microsoft.Extensions.Options/gen/Parser.cs | 2 +- .../tests/SourceGeneration.Unit.Tests/Main.cs | 1 + .../tests/SourceGenerationTests/Resources/Strings.resx | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs b/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs index 0dd4f13fad7e9..dad40ee3d7f43 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs +++ b/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs @@ -452,7 +452,7 @@ private List GetMembersToValidate(ITypeSymbol modelType, bool s if (member.IsStatic) { - // generate an error if the member is static and has a validation attribute applied + // generate a warning if the member is const/static and has a validation attribute applied if (validationAttributeIsApplied) { Diag(DiagDescriptors.CantValidateStaticOrConstMember, member.GetLocation(), member.Name); diff --git a/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Main.cs b/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Main.cs index c20ca8302d1fc..08805c76b308d 100644 --- a/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Main.cs +++ b/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Main.cs @@ -234,6 +234,7 @@ public partial class FirstModelValidator : IValidateOptions Assert.Equal(4, d.Count); Assert.All(d, x => Assert.Equal(DiagDescriptors.CantValidateStaticOrConstMember.Id, x.Id)); + Assert.All(d, x => Assert.Equal(DiagnosticSeverity.Warning, x.DefaultSeverity)); } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotBrowser))] diff --git a/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Resources/Strings.resx b/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Resources/Strings.resx index 1673d4621545b..b3a449b3c9812 100644 --- a/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Resources/Strings.resx +++ b/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Resources/Strings.resx @@ -198,4 +198,10 @@ Member potentially missing transitive validation. + + Can't apply validation attributes to constant or static member {0}. + + + Can't validate constants, static fields or properties. + \ No newline at end of file From 5dc06675390b8fe7041fb54f8da284687fbdb52d Mon Sep 17 00:00:00 2001 From: Nikita Balabaev Date: Sat, 1 Jul 2023 11:45:04 +0200 Subject: [PATCH 4/5] fix whitespaces and align .sln file --- .../Microsoft.Extensions.Options.sln | 102 +++++++++--------- .../gen/Resources/Strings.resx | 54 +++++----- .../Resources/Strings.resx | 54 +++++----- 3 files changed, 103 insertions(+), 107 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln b/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln index 8f8b01fafa263..2572df0a58666 100644 --- a/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln +++ b/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln @@ -1,8 +1,4 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.6.33815.320 -MinimumVisualStudioVersion = 10.0.40219.1 +Microsoft Visual Studio Solution File, Format Version 12.00 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F5A58A9D-3C44-4E3C-A661-1CECA84108D9}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{201C7D67-FB1D-4259-9DB4-BF188007F9EA}" @@ -117,8 +113,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Option EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "src\Microsoft.Extensions.Options.csproj", "{9BA945E7-0970-4CA2-A54B-F8D9B3E69917}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.SourceGeneration", "gen\Microsoft.Extensions.Options.SourceGeneration.csproj", "{2B8ED012-22B5-47DD-A879-FD2AFD4C067D}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.Tests", "tests\Microsoft.Extensions.Options.Tests\Microsoft.Extensions.Options.Tests.csproj", "{94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.SourceGeneration.Unit.Tests", "tests\SourceGeneration.Unit.Tests\Microsoft.Extensions.Options.SourceGeneration.Unit.Tests.csproj", "{D3B6805B-F10E-4A19-99FC-55506892BC18}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.SourceGeneration.Tests", "tests\SourceGenerationTests\Microsoft.Extensions.Options.SourceGeneration.Tests.csproj", "{D7C2C4C7-CF28-4E2B-8749-31D7E6072588}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{36C471D8-1D7A-4C81-8B05-2EED0984FBB4}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{AAB5D437-EFB2-4BAC-BA0F-7323BA691B89}" @@ -127,6 +129,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurre EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "..\System.Collections\ref\System.Collections.csproj", "{6AE427EF-C018-4075-A4C8-BF3831C5F88C}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations", "..\System.ComponentModel.Annotations\src\System.ComponentModel.Annotations.csproj", "{90548F7B-C673-42C9-BD88-A6E6550ECE1C}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\ref\System.Diagnostics.DiagnosticSource.csproj", "{6A1A3AFF-C018-498A-80A0-532396132AD5}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\src\System.Diagnostics.DiagnosticSource.csproj", "{429C9D71-4BBD-489D-9C86-EC240F652008}" @@ -169,14 +173,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7028EE0A-D31 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gen", "gen", "{C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.SourceGeneration", "gen\Microsoft.Extensions.Options.SourceGeneration.csproj", "{2B8ED012-22B5-47DD-A879-FD2AFD4C067D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.SourceGeneration.Unit.Tests", "tests\SourceGeneration.Unit.Tests\Microsoft.Extensions.Options.SourceGeneration.Unit.Tests.csproj", "{D3B6805B-F10E-4A19-99FC-55506892BC18}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.SourceGeneration.Tests", "tests\SourceGenerationTests\Microsoft.Extensions.Options.SourceGeneration.Tests.csproj", "{D7C2C4C7-CF28-4E2B-8749-31D7E6072588}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations", "..\System.ComponentModel.Annotations\src\System.ComponentModel.Annotations.csproj", "{90548F7B-C673-42C9-BD88-A6E6550ECE1C}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -521,84 +517,84 @@ Global EndGlobalSection GlobalSection(NestedProjects) = preSolution {F5A58A9D-3C44-4E3C-A661-1CECA84108D9} = {7C1317AA-5F4C-42A4-80F3-856BA5E204AF} + {94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD} = {7C1317AA-5F4C-42A4-80F3-856BA5E204AF} {201C7D67-FB1D-4259-9DB4-BF188007F9EA} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {F656E22F-D8D2-4C8A-A435-01F821A1EA07} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {5EA013FF-FCA7-4F0B-8EB7-14D8472A0830} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {66E30CB1-ADA8-4000-9CEE-56AF40323D23} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {4F936B46-60DA-4EE3-831A-06DC62E1E155} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {5E90DFC5-7D40-42E4-ADF6-7090015B7211} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {0A7AE964-D27E-44A8-85E1-F7A63EBC1BB6} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {732B0524-C9F0-4752-AD19-5275E863C6E0} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {3975BEAC-6DB6-4CF7-B788-AA5B07D6CAC1} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {B559A43F-4502-4D1B-B8C0-2822DDD8A68C} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {DAD9293C-DB4F-45DE-A1BB-D857B02A0764} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {FFA18D8E-A4A1-4F33-80A6-BD7600E71E91} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {0C4F3A7F-AAED-49A0-B8A3-B63CC83B345D} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {91F2FFBB-8954-4707-A4FF-CF5DF23303E2} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {355E3E07-8273-4660-AE2C-8603A0757C4B} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {195DC43D-4D6C-4631-969F-E89547A84A8D} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {DEE4AA87-8EC4-41EE-A2A3-2DF6F494EAF2} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {692645D6-1F0B-4DB0-85EB-7D4042857B2D} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {D4256787-48E0-473F-8C06-359C1BCFC8AB} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {A29E2B35-847A-4304-BF0F-B0DFDC4384A1} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {0F2B84D6-6C2E-4216-A8CD-DF91908F4194} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {AB7510FB-A8B8-426E-A5FB-D292F1423D5A} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {250B3EA5-65A4-4D62-B0F9-5BAAFE53BD7A} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {05161D6B-0451-43B9-B648-71B7628F2A78} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {6A4A1183-A0CF-4270-8EF9-12018D9DADB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {92B8FC4A-A8B5-4799-831D-F82A4BE16B39} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {3C56A02F-4DD8-4253-99E7-34E088A6A9D7} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {6F7512BA-9B15-4395-AE05-C546F0770344} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {36D778AF-5EC3-433F-B03D-EB244DB3C227} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {AA0A7586-364A-4F3B-A9A8-07704D789C23} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {D0932BA0-70BF-4A98-9A30-ED563AB2BFB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {F3B41A00-2E87-49F5-9A48-B03E528A6577} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {6AD51705-102E-4E9D-B62E-6BF19025F3A7} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {39EE5D71-77C5-4633-A47F-1062172FD121} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} - {8A4E7CB4-9983-4B7F-BED9-7A94BAC7CA07} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} - {333116ED-7874-4ECD-91EC-641B8479F696} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {EFFB59C1-CAF4-4347-B996-4C773E1AFAA8} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {56D37CB2-68A3-42D3-AA0E-416813ABAD8B} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {6AAFBB84-9FF1-4E16-9309-6A0A251EE420} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {9EBA168F-239A-46C4-8614-E1D3DB25DD0E} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {5DBF771C-E3DE-4538-BB8B-33029EDA0BCB} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {47B5D904-4787-49E3-9894-31F8B7BE6755} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {5570AF22-F440-4887-BFC9-CB9B557712D3} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {3E400E69-1699-412B-A202-764A967A6E51} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {CB19F6BB-E51B-4B37-AF0F-63348C7FF48E} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {7F2C68B0-A922-4455-BAF3-335E44DF6BB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {E9A3C3E5-78C9-44B3-9C8B-B764DD8DEA08} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {A9E52F82-6B9C-4E07-919B-2B1BFFB21DBB} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {37B75F58-26C3-4BD8-8285-C94F2B00DFD6} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {DA91110F-C553-45E4-93E7-948A93AD09AF} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {CD668E6C-9DD5-456E-A23A-9880A779CA14} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {6AF79D67-4D64-40B4-9276-BCC06B8BAF58} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {02C282B1-23DD-429A-ADC7-345D661557E1} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {3A6E2FA4-B745-4E4B-A82E-98CAD1177E77} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {D0CAEF2C-FB83-4C32-80BD-1F516AD13FAA} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {9BA945E7-0970-4CA2-A54B-F8D9B3E69917} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD} = {7C1317AA-5F4C-42A4-80F3-856BA5E204AF} {36C471D8-1D7A-4C81-8B05-2EED0984FBB4} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {AAB5D437-EFB2-4BAC-BA0F-7323BA691B89} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {3CE1FDFB-3BFD-463E-AC82-4E5302F0AB2F} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} {6AE427EF-C018-4075-A4C8-BF3831C5F88C} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} {6A1A3AFF-C018-498A-80A0-532396132AD5} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {429C9D71-4BBD-489D-9C86-EC240F652008} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {11773B90-8DAC-4B51-A4B6-7C64FD6942BD} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {990280EA-CDBD-480A-8224-DBCBA8B6D6DB} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {B0249028-C048-40B8-B102-BCE7928965C3} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {9F1389B4-A9A5-422F-89F5-A2D431292F0C} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {6E2398EA-A64A-4493-A79B-63D2F072A690} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {F656E22F-D8D2-4C8A-A435-01F821A1EA07} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {66E30CB1-ADA8-4000-9CEE-56AF40323D23} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {0A7AE964-D27E-44A8-85E1-F7A63EBC1BB6} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {3975BEAC-6DB6-4CF7-B788-AA5B07D6CAC1} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {DAD9293C-DB4F-45DE-A1BB-D857B02A0764} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {0C4F3A7F-AAED-49A0-B8A3-B63CC83B345D} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {355E3E07-8273-4660-AE2C-8603A0757C4B} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {DEE4AA87-8EC4-41EE-A2A3-2DF6F494EAF2} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {D4256787-48E0-473F-8C06-359C1BCFC8AB} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {0F2B84D6-6C2E-4216-A8CD-DF91908F4194} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {250B3EA5-65A4-4D62-B0F9-5BAAFE53BD7A} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {6A4A1183-A0CF-4270-8EF9-12018D9DADB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {3C56A02F-4DD8-4253-99E7-34E088A6A9D7} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {36D778AF-5EC3-433F-B03D-EB244DB3C227} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {D0932BA0-70BF-4A98-9A30-ED563AB2BFB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {6AD51705-102E-4E9D-B62E-6BF19025F3A7} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {56D37CB2-68A3-42D3-AA0E-416813ABAD8B} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {9EBA168F-239A-46C4-8614-E1D3DB25DD0E} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {47B5D904-4787-49E3-9894-31F8B7BE6755} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {3E400E69-1699-412B-A202-764A967A6E51} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {7F2C68B0-A922-4455-BAF3-335E44DF6BB9} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {A9E52F82-6B9C-4E07-919B-2B1BFFB21DBB} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {DA91110F-C553-45E4-93E7-948A93AD09AF} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {6AF79D67-4D64-40B4-9276-BCC06B8BAF58} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {3A6E2FA4-B745-4E4B-A82E-98CAD1177E77} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {9BA945E7-0970-4CA2-A54B-F8D9B3E69917} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {AAB5D437-EFB2-4BAC-BA0F-7323BA691B89} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {429C9D71-4BBD-489D-9C86-EC240F652008} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {99007CDD-4840-4B94-8A8A-FECF72BCEE3F} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {9175023F-6982-45CD-B360-C4FC1E145B25} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} - {990280EA-CDBD-480A-8224-DBCBA8B6D6DB} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} + {59D31D62-3BF9-4F4A-9FF7-3A61F297F714} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {D7CEC738-5D2D-4FCB-9268-9650EB01BF31} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} + {4F936B46-60DA-4EE3-831A-06DC62E1E155} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} + {39EE5D71-77C5-4633-A47F-1062172FD121} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} + {8A4E7CB4-9983-4B7F-BED9-7A94BAC7CA07} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} + {333116ED-7874-4ECD-91EC-641B8479F696} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {62065BFE-5477-44DD-A328-582B0F050EC3} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {02425B61-8D98-4F4A-88AE-F77D4837DF9E} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {E0460280-2F49-474C-862D-1787D9244CC8} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} - {B0249028-C048-40B8-B102-BCE7928965C3} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {9F1389B4-A9A5-422F-89F5-A2D431292F0C} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {59D31D62-3BF9-4F4A-9FF7-3A61F297F714} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {B5F25A78-B7FB-460B-9B71-BE82D22923FD} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {E06CE29E-15EB-4C0E-97B7-4367FFEDD98D} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {9021FD06-E11E-42DE-87EF-A1040BA5DB56} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} - {6E2398EA-A64A-4493-A79B-63D2F072A690} = {72A090A3-FE14-4F4E-B266-EFFB5C736462} - {D7CEC738-5D2D-4FCB-9268-9650EB01BF31} = {7028EE0A-D314-4F48-91CA-51A1633BC3F4} {2B8ED012-22B5-47DD-A879-FD2AFD4C067D} = {C25891DB-FBAC-4B92-9BB9-A8181B5A0EF1} {D3B6805B-F10E-4A19-99FC-55506892BC18} = {7C1317AA-5F4C-42A4-80F3-856BA5E204AF} {D7C2C4C7-CF28-4E2B-8749-31D7E6072588} = {7C1317AA-5F4C-42A4-80F3-856BA5E204AF} @@ -607,4 +603,4 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {FE89CDC6-6313-439C-85D7-A81D5DF593E9} EndGlobalSection -EndGlobal +EndGlobal \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx b/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx index 30ea0ebaf5a12..0003ba4b6f089 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx @@ -1,17 +1,17 @@  - diff --git a/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx b/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx index b361abd3ef3df..b3a449b3c9812 100644 --- a/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx +++ b/src/libraries/Microsoft.Extensions.Options/tests/SourceGeneration.Unit.Tests/Resources/Strings.resx @@ -1,17 +1,17 @@  - From cd932c12fad6f156315fa318ed19cb5dfa26be7c Mon Sep 17 00:00:00 2001 From: Nikita Balabaev Date: Sat, 1 Jul 2023 11:48:05 +0200 Subject: [PATCH 5/5] Return original EOFs --- .../Microsoft.Extensions.Options.sln | 2 +- .../Microsoft.Extensions.Options/gen/Resources/Strings.resx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln b/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln index 2572df0a58666..3935bd84d4004 100644 --- a/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln +++ b/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln @@ -603,4 +603,4 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {FE89CDC6-6313-439C-85D7-A81D5DF593E9} EndGlobalSection -EndGlobal \ No newline at end of file +EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx b/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx index 0003ba4b6f089..76c83d10f7ef4 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx +++ b/src/libraries/Microsoft.Extensions.Options/gen/Resources/Strings.resx @@ -201,4 +201,4 @@ Validators used for transitive or enumerable validation must have a constructor with no parameters. - \ No newline at end of file +