-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Closed
Description
Championed proposal: dotnet/csharplang#6420
Speclet: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-13.0/partial-properties.md
Feature branch: https://github.com/dotnet/roslyn/tree/features/partial-properties
Compiler
- LangVersion (
LangVersion_01
) - A missing or extra declaration or implementation (
MissingDeclaration_*
,DuplicateDeclaration_*
) - Accessor mismatch (get/set missing in either declaration or implementation) (
MissingAccessor_*
,UnexpectedAccessor_*
) - set vs. init (
AccessorKind_*
) - readonly vs. not (
ModifierDifference_Readonly_Accessors
) - Accessors split across two declarations or implementations (
DuplicateDeclaration_08
, split implementation but not split definition) -
extern
part is considered implementation - Differences in return or parameter types (
TypeDifference_*
,NullableDifference_*
,Indexers_*
)- tuple names
- nullability (warning regardless of nullability context and warning wave)
- ref kind (
RefKindDifference_*
) - alias usage (
AliasDifference
) -
params
(ParamsDifference_*
) - optional parameters (only definition counts, implementation warns,
OptionalParameters_*
) - parameter names (warning,
IndexerParameterNameDifference
)
- static vs. non-static (
StaticDifference
) - virtual/override/sealed differences (
ExtendedDifference_01
) -
abstract
is disallowed (Abstract
) - unsafe (
UnsafeDifference_*
) -
required
(Required_*
) - Different accessibilities, explicit vs. default accessibility (
ModifierDifference_Accessibility_*
) -
scoped
(ScopedDifference_*
,Semantics_Scoped
) - explicit interface implementation is disallowed (
ExplicitImplementation
) - only in
partial
type (NotInPartialType
) - Attributes (
Attributes_*
)- Attributes on both parts
- field-targeted attribute on declaration
- nullability attribute differences
- caller attributes
- obsolete (
Obsolete_*
) - UnmanagedCallersOnly
- public API (
PartialDefinitionPart
,PartialImplementationPart
andIsPartialDefinition
on property symbol,AssociatedSymbol
on accessors,GetDeclaredSymbol
) (GetDeclaredSymbol_*
) - nullability analysis of accessor bodies against correct signature (
AllowNull_*
,NullableDifference_Analysis
) - xml docs (
PartialProperties_*
) - Overrides (
Semantics_ExtendedModifier
) - Override a property where the base has a modopt Partial properties: merging declarations and emit of simple cases #72999 (comment)
- EnC (EnC: Implement support for partial properties #74494)
Productivity
- IDE minbar (completion, QuickInfo, formatting, colorization, no crashes in manual test pass)
- GoToDefinition/GoToImplementation
kyoyama-kazusa, Rekkonnect, neon-sunset, datvm, iamjonathanbrown and 6 more