feat(transpiler): constructor and typed field semantics #45
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
fixes #11 (constructor and typed field semantics)
fixes #42 (Should we infer class property types from ctor args ?)
fixes #17 (number (js) should map to num (dart))
I am also looking for a general feedback on this PR: there is quite some refactoring in this PR to conform more to the Traceur architecture. IMO it makes the code easier to maintain long-term, feedback is welcome.
Difference with the original ticket (#11):
@FINAL
is not implemented. All fields are declared final if the ctor is const. If the ctor is not const, no fields will be final. I see little value in this annotation at least for now.One thing that could be improved is that field must be initialized with a constant expression in Dart (for const ctor). This is not enforced right now but there is a TODO in the code. I think this could be implemented at a later point in time.