-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Open
Labels
Feature RequestInteractive-EnCUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.
Milestone
Description
- Simple method renames
Emit new method[EnC] Allow renaming methods, properties, events etc. #62364- Update old method to trampoline
Keep track of the change in a dictionary
Simple method signature change[EnC] Allow deleting method #61806Emit new methodUpdate old method tothrow new MissingMethodException()Keep track of the change in a dictionaryFollow up: parameter type changesIssue delete and insert edits when changing parameters #62897- Follow up: If parameter types only change, and all types are assignable, or only adding parameters that have default values, this could trampoline too
Follow up: Parameter reorder, when different typesAllow reordering parameters, inserting, and deleting parameters #64596Follow up: Return type changeSupport changing return types of methods, properties, events #63486Follow up: Insert/delete parameterIssue delete and insert edits when changing parameters #62897
- Delete method
Update old method to[EnC] Allow deleting method #61806throw new MissingMethodException()?Follow up: Allow deleting constructors, properties, indexers, events[EnC] Support more symbol deletes #62151- Follow up: Allow deleting virtual/abstract methods (see comment in code referencing this issue)
Block if active statement in method[EnC] Allow renaming methods, properties, events etc. #62364- How do breakpoints work?
We use the dictionary to keep track of renames because if a method gets renamed/changed back to any form it was previously, then we don't emit new methods, we update previous ones[EnC] Allow deleting method #61806Non-auto properties work as above (are get_ and set_ methods)Auto properties work similar, but ideally we don't change the name of the backing field, so values aren't lost- Fields will have to lose values
- Maybe debugger could help?
- Copy memory, or use EE to re-assign?
- Async methods and methods with lambdas need more thought
- Do we rename helpers, or reuse?
- If a method is renamed, then new method will emit new helpers, so maybe will just work
- Active statement can't be in any nested lambda in a method for a method to be renamed
- Changing parameters on lambdas and local functions themselves
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Feature RequestInteractive-EnCUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.