/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Compilers/CSharp/Portable/BoundTree/BoundPattern.cs
39 строк
1 KB
AlekseyTs
Unions: Standardize on UnionMatchingMode property (#84436)
14 июл 2026, 14:13
Не верифицирован
14 июл 2026, 14:13
3c80d25
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Diagnostics; using Microsoft.CodeAnalysis.CSharp.Symbols; namespace Microsoft.CodeAnalysis.CSharp { internal partial class BoundPattern { /// <summary> /// Sets <paramref name="innerPattern"/> to the inner pattern after stripping off outer /// <see cref="BoundNegatedPattern"/>s, and returns true if the original pattern is a /// negated form of the inner pattern. /// </summary> internal bool IsNegated(out BoundPattern innerPattern) { innerPattern = this; bool negated = false; while (innerPattern is BoundNegatedPattern negatedPattern) { Debug.Assert(negatedPattern.UnionMatchingMode == UnionMatchingMode.None); negated = !negated; innerPattern = negatedPattern.Negated; } return negated; } public virtual UnionMatchingMode UnionMatchingMode => UnionMatchingMode.None; private partial void Validate() { Debug.Assert(UnionMatchingMode != UnionMatchingMode.UnionInstance); Debug.Assert(UnionMatchingMode == UnionMatchingMode.None || InputType is { IsSubjectForUnionMatching: true }); } } }