From 79e2d44005f27b3d1611ee90a8c89c3196122770 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 2 Nov 2022 16:09:01 +0600 Subject: [PATCH] Only use scoped keyword when building with .NET 7 SDK --- Directory.Build.targets | 5 +++++ src/Avalonia.Base/Media/PathMarkupParser.cs | 12 ++++++++++-- src/Avalonia.Base/Utilities/IdentifierParser.cs | 6 +++++- .../Markup/Parsers/BindingExpressionGrammar.cs | 12 ++++++++++-- 4 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 Directory.Build.targets diff --git a/Directory.Build.targets b/Directory.Build.targets new file mode 100644 index 0000000000..73954c7f4d --- /dev/null +++ b/Directory.Build.targets @@ -0,0 +1,5 @@ + + + $(DefineConstants);NET7SDK + + diff --git a/src/Avalonia.Base/Media/PathMarkupParser.cs b/src/Avalonia.Base/Media/PathMarkupParser.cs index cf12bf5126..5e808488fc 100644 --- a/src/Avalonia.Base/Media/PathMarkupParser.cs +++ b/src/Avalonia.Base/Media/PathMarkupParser.cs @@ -188,7 +188,11 @@ namespace Avalonia.Media _isOpen = true; } - private void SetFillRule(scoped ref ReadOnlySpan span) + private void SetFillRule( +#if NET7SDK + scoped +#endif + ref ReadOnlySpan span) { ThrowIfDisposed(); @@ -452,7 +456,11 @@ namespace Avalonia.Media return !span.IsEmpty && (span[0] == ',' || span[0] == '-' || span[0] == '.' || char.IsDigit(span[0])); } - private static bool ReadArgument(scoped ref ReadOnlySpan remaining, out ReadOnlySpan argument) + private static bool ReadArgument( +#if NET7SDK + scoped +#endif + ref ReadOnlySpan remaining, out ReadOnlySpan argument) { remaining = SkipWhitespace(remaining); if (remaining.IsEmpty) diff --git a/src/Avalonia.Base/Utilities/IdentifierParser.cs b/src/Avalonia.Base/Utilities/IdentifierParser.cs index ee176a6b85..76e6459e2e 100644 --- a/src/Avalonia.Base/Utilities/IdentifierParser.cs +++ b/src/Avalonia.Base/Utilities/IdentifierParser.cs @@ -8,7 +8,11 @@ namespace Avalonia.Utilities #endif static class IdentifierParser { - public static ReadOnlySpan ParseIdentifier(this scoped ref CharacterReader r) + public static ReadOnlySpan ParseIdentifier(this +#if NET7SDK + scoped +#endif + ref CharacterReader r) { if (IsValidIdentifierStart(r.Peek)) { diff --git a/src/Markup/Avalonia.Markup/Markup/Parsers/BindingExpressionGrammar.cs b/src/Markup/Avalonia.Markup/Markup/Parsers/BindingExpressionGrammar.cs index 0a9fbcfacb..21c0d97c74 100644 --- a/src/Markup/Avalonia.Markup/Markup/Parsers/BindingExpressionGrammar.cs +++ b/src/Markup/Avalonia.Markup/Markup/Parsers/BindingExpressionGrammar.cs @@ -168,7 +168,11 @@ namespace Avalonia.Markup.Parsers } } - private static State ParseAttachedProperty(scoped ref CharacterReader r, List nodes) + private static State ParseAttachedProperty( +#if NET7SDK + scoped +#endif + ref CharacterReader r, List nodes) { var (ns, owner) = ParseTypeName(ref r); @@ -318,7 +322,11 @@ namespace Avalonia.Markup.Parsers return State.AfterMember; } - private static TypeName ParseTypeName(scoped ref CharacterReader r) + private static TypeName ParseTypeName( +#if NET7SDK + scoped +#endif + ref CharacterReader r) { ReadOnlySpan ns, typeName; ns = ReadOnlySpan.Empty;