-
Notifications
You must be signed in to change notification settings - Fork 356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make more use of List1 (List.NonEmpty) in concrete syntax #4547
Comments
Remove fields that have a fixed value (e.g. lamWhere = NoWhere). As a plus, this simplifies scope checking.
Remove fields that have a fixed value (e.g. lamWhere = NoWhere). As a plus, this simplifies scope checking.
This eliminates a couple of __IMPOSSIBLE__s and documents non-emptiness robustly. I introduced some uses of List1.fromList that should be eliminated over time. More opportunities for List1 may be on the declaration level, e.g. in Syntax.Concrete.Definitions.
This eliminates a couple of __IMPOSSIBLE__s and documents non-emptiness robustly. I introduced some uses of List1.fromList that should be eliminated over time. More opportunities for List1 may be on the declaration level, e.g. in Syntax.Concrete.Definitions.
This eliminates a couple of __IMPOSSIBLE__s and documents non-emptiness robustly. I introduced some uses of List1.fromList that should be eliminated over time. More opportunities for List1 may be on the declaration level, e.g. in Syntax.Concrete.Definitions.
Spent my 17th day in quarantine with a day-long refactoring of the parser to use |
There is plenty of opportunities for |
An application naturally is a list of at least 2 elements. No more removeSingletonRawAppP! Eliminated ~10 corner cases. Concrete.Definitions: Since EllipsisP is no longer wrapped in a RawAppP which stores its range even after replacement, we need to set the range of the ellipsis to the pattern we substitute for the ellipsis.
I am now making |
An application naturally is a list of at least 2 elements. No more removeSingletonRawAppP! Eliminated ~10 corner cases. Change to Concrete.Definitions: - Since EllipsisP is no longer wrapped in a RawAppP which stores its range even after replacement, we need to set the range of the ellipsis to the pattern we substitute for the ellipsis. - As a side effect, the ellipsis ... maybe be highlighted as function now, allowing jump-to-definition. Can be considered a feature rather than a bug.
Also: introduce smart constructors for C.Name: - simpleName - simpleHole - simpleBinaryOperator
Also: introduce smart constructors for C.Name: - simpleName - simpleHole - simpleBinaryOperator
This refactoring does not remove any __IMPOSSIBLE__s. It does not seem to matter whether we have "0-ary operators" or not.
This makes many calls to {NonEmpty,List1}.toList obsolete. Also added some more functions to Agda.Utils.List1 to make even more calls to toList obsolete.
This makes many calls to {NonEmpty,List1}.toList obsolete. Also added some more functions to Agda.Utils.List1 to make even more calls to toList obsolete.
Statically disallowing empty Let has some repercussions in the translations between concrete and abstract syntax. I had to introduce 'Maybe TypedBinding' in some places which wasn't necessary before since Let could host an empty binding before.
Statically disallowing empty Let has some repercussions in the translations between concrete and abstract syntax. I had to introduce 'Maybe TypedBinding' in some places which wasn't necessary before since Let could host an empty binding before.
Several sequences in the concrete syntax cannot be empty, and we can express this via
List1
.The text was updated successfully, but these errors were encountered: