108 lines
3.2 KiB
C#
108 lines
3.2 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System;
|
|
|
|
namespace JetBrains.Annotations
|
|
{
|
|
[AttributeUsage(
|
|
AttributeTargets.Method | AttributeTargets.Parameter |
|
|
AttributeTargets.Property | AttributeTargets.Delegate |
|
|
AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
|
|
internal sealed class NotNullAttribute : Attribute
|
|
{
|
|
}
|
|
|
|
[AttributeUsage(
|
|
AttributeTargets.Method | AttributeTargets.Parameter |
|
|
AttributeTargets.Property | AttributeTargets.Delegate |
|
|
AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
|
|
internal sealed class CanBeNullAttribute : Attribute
|
|
{
|
|
}
|
|
|
|
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
|
|
internal sealed class InvokerParameterNameAttribute : Attribute
|
|
{
|
|
}
|
|
|
|
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
|
|
internal sealed class NoEnumerationAttribute : Attribute
|
|
{
|
|
}
|
|
|
|
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
|
|
internal sealed class ContractAnnotationAttribute : Attribute
|
|
{
|
|
public string Contract { get; private set; }
|
|
|
|
public bool ForceFullStates { get; private set; }
|
|
|
|
public ContractAnnotationAttribute([NotNull] string contract)
|
|
: this(contract, false)
|
|
{
|
|
}
|
|
|
|
public ContractAnnotationAttribute([NotNull] string contract, bool forceFullStates)
|
|
{
|
|
Contract = contract;
|
|
ForceFullStates = forceFullStates;
|
|
}
|
|
}
|
|
|
|
[AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = true)]
|
|
internal sealed class UsedImplicitlyAttribute : Attribute
|
|
{
|
|
public UsedImplicitlyAttribute()
|
|
: this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default)
|
|
{
|
|
}
|
|
|
|
public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags)
|
|
: this(useKindFlags, ImplicitUseTargetFlags.Default)
|
|
{
|
|
}
|
|
|
|
public UsedImplicitlyAttribute(ImplicitUseTargetFlags targetFlags)
|
|
: this(ImplicitUseKindFlags.Default, targetFlags)
|
|
{
|
|
}
|
|
|
|
public UsedImplicitlyAttribute(
|
|
ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags)
|
|
{
|
|
UseKindFlags = useKindFlags;
|
|
TargetFlags = targetFlags;
|
|
}
|
|
|
|
public ImplicitUseKindFlags UseKindFlags { get; private set; }
|
|
public ImplicitUseTargetFlags TargetFlags { get; private set; }
|
|
}
|
|
|
|
[Flags]
|
|
internal enum ImplicitUseKindFlags
|
|
{
|
|
Default = Access | Assign | InstantiatedWithFixedConstructorSignature,
|
|
Access = 1,
|
|
Assign = 2,
|
|
InstantiatedWithFixedConstructorSignature = 4,
|
|
InstantiatedNoFixedConstructorSignature = 8,
|
|
}
|
|
|
|
[Flags]
|
|
internal enum ImplicitUseTargetFlags
|
|
{
|
|
Default = Itself,
|
|
Itself = 1,
|
|
Members = 2,
|
|
WithMembers = Itself | Members
|
|
}
|
|
}
|
|
|
|
namespace Microsoft.EntityFrameworkCore.Relational.Utilities
|
|
{
|
|
internal sealed class ValidatedNotNullAttribute : Attribute
|
|
{
|
|
}
|
|
}
|