This month, while I spent a little bit of time understanding and finding how to fix class name refactoring, I realized that it wasn’t as high up my sponsor’s priority list as “Better error detection” was, so I switched gears back to the detection and have spent my time fixing those issues as I find them. The only one that was particularly pointed out in the work description was “var i : int = 10/2;”. I’ve fixed that and a number of other issues and am now working on the highlighted lines here:
By the way, the inspections you see here are not limited to Float/Int comparisons; it applies to anything that is assignment [in]compatible. That said, the plugin doesn’t have any real unification support or monomorph type coercion yet.
What I worked on for our sponsors:
1) Type annotation cleanup: (ongoing)
- Detect Float values being assigned to Int variables in variable declarations – including adding selectable quick fixes (such as “Wrap with Std.int()”). (complete – not reviewed — was in-progress last month)
- Detect incompatibility when initializing variables using type-tagged expressions (complete – not reviewed);
- Detect incompatibility when initializing variables using parenthesized expressions (complete – not reviewed);
- Detect incompatibility during assignment (in-progress)
2) Renaming a class (refactoring) inappropriately renames the constructor. (in-progress)
What I worked on for the Community:
1) Fix review comments and merged “Extract Variable” and “Extract Constant” refactorings. (merged)
- Added type-tag parsing (in general) and support it during extraction. (completed in January)
- Detect type and use it to make better name suggestions. (completed in January)
- Avoid using/allowing keywords as variable names/suggestions. (completed in January)
- Stop infinite loop when a variable was being extracted to the class level. (completed in December)
- Avoid Haxe keywords when making variable name suggestions. (complete in December)
- Fixed multi-select (for renaming all occurrences simultaneously). (completed in December)
- Fixed semi-colon detection and insertion. (completed in December)
2) Adding tab settings pane (in-progress):
- Get pane to display. (complete)
- Save settings and honor them. (complete, except for continuations)
- Honor continuation settings. (in-progress)
3) Research and preliminary work on Issue #641 – where unexpected directories (e.g. root!) are being deleted.
4) Some progress on the new UI for standard library locations. (It is going slow.)
1) Updated hxcpp-debugger code with code generated using hxjava 3.2.0 to get rid of warnings and messy class names (m0rkeulv). (merged)
1) Finish tab settings pane.
2) Continue type annotation cleanup. (sponsor priority)
3) Fix class constructor being inappropriately renamed during class rename refactoring.
4) Fix debugging C++ projects when build with Lime. (Currently looks like an hxcpp issue.)
5) Time for another release!
6) Continue UI for standard library locations.
7) Haxe 4 features?
Have a great month, everybody!