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 ref locals & ref returns against IDE features #8350

Closed
dpoeschl opened this issue Feb 2, 2016 · 3 comments
Closed

Test ref locals & ref returns against IDE features #8350

dpoeschl opened this issue Feb 2, 2016 · 3 comments
Assignees
Labels

Comments

@dpoeschl
Copy link
Contributor

dpoeschl commented Feb 2, 2016

PR: #8030
Test Plan Template: #8389

Completion has been updated, with tests, by the compiler team.

@dpoeschl dpoeschl added Area-IDE Test Test failures in roslyn-CI labels Feb 2, 2016
@dpoeschl dpoeschl self-assigned this Feb 2, 2016
@dpoeschl dpoeschl added this to the 1.2 milestone Feb 2, 2016
@dpoeschl
Copy link
Contributor Author

dpoeschl commented Feb 4, 2016

✅ = 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

Category Feature/Description C# Signoff/Notes
Enable/Disable Feature Flag
Add Description
🆗 Known issue, @jasonmalinowski is working on feature flags
<features>refLocalsAndReturns</features>
Typing Completion1
- Typing new keyword/construct names
- Dotting off of new constructs
Formatting
- Spacing in and around new constructs
- Spacing options
- Format Document command
Automatic Brace Completion (C# only)
- Auto-insert close brace
- Shift+Enter commit of pending brace completion
🆓
Indentation
- Typing Enter in an unfinished statement indents the next line
Navigating Go To Definition
- F12 from callsites to definition
🆓
Go To Implementation
- Jump from virtual members to their implementations
- Jump from inheritable types to their implementations
🆓
Find All References
- Lists references to a symbol in "Find Symbol Results" window
- Shows results in hierarchy grouped by definition
🆓
Viewing Colorization
- Keywords, literals, and identifiers colored appropriately in code
Error Squiggles
- 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

Category Feature/Description C# Signoff/Notes
Refactoring wit UI Inline Rename (with UI)
- Dashboard shows correct information
- Highlighted spans are updated appropriately
- Rename operation updates the correct set of symbols
Change Signature (with UI)
- Updates all direct & cascaded definitions/callsites
- Shows appropriate signature & parameter previews in UI
🚧 #8437 ref not shown in updated signature preview
Extract Interface (with UI)
- Generated Interface has expected shape
- UI shows appropriate method previews
🚧 #8438 Does not generate ref-returning methods
Generate Type (with UI)
- Dialog gives all valid options
🆓
Refactorings Rename Tracking
- Tracking span tracks & dismisses as expected
🆓
Extract Method
- Extracted method has the expected signature
- All arguments/return values handled correctly
- Extracted code block is reasonable
🚧 #8439 Does not generate ref-returning methods
Introduce Variable
- Introduced variable has the expected signature and initializer expression
- "Introduce for All" correctly finds dupes
🚧 #8442 Introduced variable is not ref, nor is its initialization
Inline Temp
- Inlined values are appropriately expanded/reduced
#8416 Crash inlining ref local to ref return
Unrelated: Inlining to ref arguments fails
Organize Usings
- Honors "Place 'System' namespace first" option
🆓
Fixes Add Using
- Triggers on appropriate constructs
Generate Local
Add Description
Generate Field
Add Description
Generate Method/Constructor
- Generated method has the expected signature and accessibility
🚧 Does not generate ref-returning methods
Generate Constructor from members
- Select fields/properties to generate a constructor accepting corresponding arguments
- Generated constructor has the expected signature and accessibility
✅ (ref-returning props don't have setters)
Implement Interface
- Only missing methods added
- All added methods have the expected signature and accessibility
🆗 #8402 Crash typing ref in interface
Does not generate ref-returning methods
Implement IDisposable
Add Description
🆓
Implement Abstract Class
Add Description
🆗 #8402 Crash typing ref in abstract class
🚧 Does not generate ref-returning methods
Convert "Get" Methods to Properties*
Add Description
🚧 Does not generate ref-returning properties
Encapsulate Field
Add Description
🚧 #8444 Encapsulating a field used as a ref return causes attempt to illegally return ref property
Code Gen Snippets
Add Description
🆓
Event Hookup on Tab (C# only)
- Type "+=" after an event name and QuickInfo shows
- Invoking should pick good name & launch Inline Rename
🚧 #8446 Doesn't show up on refs to events

IDE Features

Feature/Description C# Signoff/Notes
Signature Help
- Overloads shown with appropriate, colorized signature
Quick Info
- Hover on identifiers
- On completion list items
🚧 #8453 Locals/Fields do not mention refness
Outlining
Add Description
🆓
Brace Matching (C# only)
Add Description
🆓
Highlight References
Add Description
🆓
Peek
Add Description
🆓
Navigation Bars
Add Description
🆓
Metadata As Source
Add Description
Navigate To
Add Description
🆓
Go to Next/Previous Method
Add Description
Solution Explorer Pivots
Add Description
Call Hierarchy
Add Description
Code Lens
Add Description
Project System
Add Description
Debugger IntelliSense
Add Description
Code Model / Class Designer
Add Description
✅ in Class Designer & CodeMap
Object Browser / Class View
Add Description
🚧 ref keyword not shown on Object Browser members
❔ Do we need "IsRefReturning" in the property grid? No
Lightbulb
Add Description
🆓
Line Separators
Add Description
🆓
Options
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

Category Integration Signoff/Notes
Projection Buffers Razor
Add Description
Other web?
Add Description
Designers WPF
- Event generation from designer to code
- Designer consumption of new types of members
#8489 Data-binding ref-returning props fails. Should ref-returning members be invokable via reflection?
WinForms
Add Description
Project System Interactions .NET Core "Console Application (Package)"
Add Description
Linked Files (all flavors)
Add Description

Interaction with other new language features

Feature C# Signoff/Notes
Local Functions 🚧 #8441 ref void local methods do not cause an error
Binary Literals 🆓

New Feature Suggestions

What refactorings, fixes, code transformations, or other in-editor experiences would enhance this language feature?

Feature Name Description
? ?

@DustinCampbell
Copy link
Member

Removing urgency-soon label since the bulk of the actual test work and bug generation is done.

@dpoeschl dpoeschl modified the milestones: 2.0 (Preview), 1.2 Mar 9, 2016
@dpoeschl
Copy link
Contributor Author

dpoeschl commented Mar 9, 2016

Closing out, since this really is done. I have a few spots in the matrix to fill in above based on my OneNote notes, but nothing of consequence.

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

No branches or pull requests

2 participants