Scope is not checked. It is possible to call constructors from unrelated classes.
Changing the constructor can be done when selecting parantheses, but this is not very intuitive.
Constructor arguments are specified from right to left.
Comma cannot be used to add items as constructor arguments (only enter)
A transform from a local variable declaration would enable more natural typing
Currently need to specify the type as well as the specific constructor. It would be more natural to automatically re-bind to a matching constructor instead of manually specifying which constructor to use.
An idea to solve some of these issues is:
Since we know the type (the LHS) we may be able to match against the signatures of all constructors within that class. The list of arguments can be simply a list of expressions.
One issue with this solution however is that we also need to have proper references. (ctrl+click on the declaration should still bring us to a matching constructor)
First create a c++= local variable declaration which can be either a base type with initialization expression, or a class initialization on the stack (copy/pasted from mbeddr localvariabledeclaration)
Forbid C-type local variable declarations in C++
Check if the local variable declaration can be modularized in mbeddr so this workaround is not needed (check with mbeddr team)
Usability improvements
An idea to solve some of these issues is: Since we know the type (the LHS) we may be able to match against the signatures of all constructors within that class. The list of arguments can be simply a list of expressions. One issue with this solution however is that we also need to have proper references. (ctrl+click on the declaration should still bring us to a matching constructor)