Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Test Plan for "Partial Properties" feature #73090

Closed
39 tasks done
RikkiGibson opened this issue Apr 18, 2024 · 4 comments
Closed
39 tasks done

Test Plan for "Partial Properties" feature #73090

RikkiGibson opened this issue Apr 18, 2024 · 4 comments

Comments

@RikkiGibson
Copy link
Contributor

RikkiGibson commented Apr 18, 2024

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 and IsPartialDefinition 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
@dotnet-issue-labeler dotnet-issue-labeler bot added Area-Compilers untriaged Issues and PRs which have not yet been triaged by a lead labels Apr 18, 2024
@RikkiGibson RikkiGibson self-assigned this Apr 18, 2024
@jaredpar jaredpar added this to the 17.12 milestone Apr 19, 2024
@jaredpar jaredpar added Bug Feature Request and removed untriaged Issues and PRs which have not yet been triaged by a lead Bug labels Apr 19, 2024
@jcouv jcouv self-assigned this Apr 23, 2024
@Cosifne
Copy link
Member

Cosifne commented May 30, 2024

Verified works in Document outline, Navigation bar and solution explorer

@hi-xiaoxin
Copy link

When can we experience partial properties in the VS preview version? I can't wait any longer. This feature will greatly simplify and optimize many of our libraries, and it definitely has revolutionary significance.

Thank you for the contributions of the Roslyn team.

@RikkiGibson
Copy link
Contributor Author

The feature will be available in VS 17.11 Preview 3. If you want to experiment with the feature in the short term, a nightly compiler build should be available within a day or so.

@RikkiGibson
Copy link
Contributor Author

Test plan is complete

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

5 participants