Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Test Plan for "Partial Properties" feature #73090

Open
38 of 39 tasks
RikkiGibson opened this issue Apr 18, 2024 · 3 comments
Open
38 of 39 tasks

Test Plan for "Partial Properties" feature #73090

RikkiGibson opened this issue Apr 18, 2024 · 3 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/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

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.

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

No branches or pull requests

5 participants