Dart runtime still is missing access to critical data types
- Dominant language
- Java
- Stars
- 19k
- Forks
- 3.5k
- PR merge metrics
- No merged PRs in 30d
Description
I'm trying to implement a basic class using the interface [ErrorListener](https://github.com/antlr/antlr4/blob/76fa05c21b12b96a6c12a0a82e611ed9d87d5af4/runtime/Dart/lib/src/error/src/error_listener.dart#L18). Unfortunately, the interface requires [BitSet](https://github.com/antlr/antlr4/blob/76fa05c21b12b96a6c12a0a82e611ed9d87d5af4/runtime/Dart/lib/src/error/src/error_listener.dart#L103), and there isn't really a workaround--although I can make an extension of [BaseErrorListener](https://github.com/antlr/antlr4/blob/76fa05c21b12b96a6c12a0a82e611ed9d87d5af4/runtime/Dart/lib/src/error/src/error_listener.dart#L183) and override syntaxError. But I can't override the report ambiguity method. This is too bad, because the Dart target is as fast or faster than Java and CSharp.
I really do not understand why we cannot export *all* data types in Dart. If it exports more than what is necessary, does it matter? There seems to be a lack of addressing the accessibility of the runtime data types and methods across all targets. Missing data types and methods make it impossible to create a consistent driver that tests functionality and correctness in Antlr.
Contributor guide
Research direction
Start with runtime/Dart/lib/src/error/src/error_listener.dart, especially ErrorListener, BitSet, BaseErrorListener, and report ambiguity. Check which runtime data types and methods are inaccessible to Dart users and compare the target's public exports with the interfaces that reference them. Done means Dart clients can implement the relevant error-listener methods without inaccessible required types.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100