Test pattern matching against IDE features #9068
Labels
0 - Backlog
Area-IDE
Feature - Pattern Matching
Pattern Matching
Language-C#
Test
Test failures in roslyn-CI
Milestone
Testing tags
✅ = Tested & Approved (possibly with linked bugs)
❌ = Merge blocking
🚧 = Non-blocking bugs
🆗 = Issue has been fixed
🆓 = No expected impact
❓ = Open question
❔ = Answered question
1 Feature updated by compiler team, with appropriate unit tests.
2 Feature requires more complete testing by IDE team. (?)
Internal Dogfooding Requirements (Merge Signoff)
Critical IDE features in the areas of Typing, Navigating, and Viewing must function as expected. Any non-trivial issues in these areas blocking language feature merging.
All feature descriptions and testing suggestions are merely examples. Each language feature should be carefully considered independently against each IDE feature to find interesting intersections
Completely enables/disables the feature in the compiler & IDE
- Type and paste new constructs
- Nothing interferes with verbatim typing
Typing of complex patterns is poor #9071
- Typing new keyword/construct names
- Dotting off of new constructs
No completion at start of pattern case block: #9076
Pattern variable in negated expression not in else clause: #9082
'let' not suggested: #9083
No completion for the type in a 'let' declaration: #9084
'let' declaration keywords not offered: #9085
'throw' not offered in expression contexts: #9099
- Spacing in and around new constructs
- Spacing options
- Format Document command
- Auto-insert close brace
- Shift+Enter commit of pending brace completion
- Typing
Enter
in an unfinished statement indents the next lineIndentation not working with cases clauses with patterns in switch statements: #9097
Or match/case expressions: #9098
- F12 from callsites to definition
- Jump from virtual members to their implementations
- Jump from inheritable types to their implementations
- Lists references to a symbol in "Find Symbol Results" window
- Shows results in hierarchy grouped by definition
Not working for constructors and positional patterns: #9107
- Keywords, literals, and identifiers colored appropriately in code
- Squiggles appear as expected on reasonable spans
IDE Features (Feature Signoff)
For the remaining set of IDE features, only crashes and asserts are considered blocking. However, all issues discovered must be filed and linked here.
All feature descriptions and testing suggestions are merely examples. Each language feature should be carefully considered independently against each IDE feature to find interesting intersections
Code Transformations
- Dashboard shows correct information
- Highlighted spans are updated appropriately
- Rename operation updates the correct set of symbols
Rename cannot be triggered from complex parameter: #9080
Rename cannot be triggered from 'let' declaration: #9086
Unresolvable conflicts when renaming a 'let' variable reference: #9088
- Updates all direct & cascaded definitions/callsites
- Shows appropriate signature & parameter previews in UI
- Generated Interface has expected shape
- UI shows appropriate method previews
- Dialog gives all valid options
- Tracking span tracks & dismisses as expected
- Extracted method has the expected signature
- All arguments/return values handled correctly
- Extracted code block is reasonable
- Introduced variable has the expected signature and initializer expression
- "Introduce for All" correctly finds dupes
- Inlined values are appropriately expanded/reduced
- Honors "Place 'System' namespace first" option
Add Description
Add Description
- Triggers on appropriate constructs
Add Description
Add Description
- Generated method has the expected signature and accessibility
- Select fields/properties to generate a constructor accepting corresponding arguments
- Generated constructor has the expected signature and accessibility
- Only missing methods added
- All added methods have the expected signature and accessibility
Add Description
Add Description
Add Description
- Type "+=" after an event name and QuickInfo shows
- Invoking should pick good name & launch Inline Rename
Add Description
Add Description
IDE Features
- Overloads shown with appropriate, colorized signature
- Hover on identifiers
- On completion list items
Not showing on pattern variable: #9092
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Add Description
Project System & External Integration
(Any changes to the runtime will require much more testing in this category)
All feature descriptions and testing suggestions are merely examples. Each language feature should be carefully considered independently against each IDE feature to find interesting intersections
- Verify expression and block contexts
- Test on projection boundaries
- Emphasis on rename and formatting
- Verify expression and block contexts
- Test on projection boundaries
- Emphasis on rename and formatting
- Event generation from designer to code
- Designer consumption of new types of members
- Cross language features (GTD, FAR)
Add Description
Add Description
Add Description
Interaction with other new language features
Verify IDE handling of the new language feature in conjunction with other new/unreleased language features
New Feature Suggestions
What refactorings, fixes, code transformations, or other in-editor experiences would enhance this language feature?
The text was updated successfully, but these errors were encountered: