-
Notifications
You must be signed in to change notification settings - Fork 95
Misc fixes #1619
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
base: draft-v8
Are you sure you want to change the base?
Misc fixes #1619
Changes from all commits
7d520ef
809d6a0
cf73603
610bc2a
7948683
a1d5a0f
fb475b8
6af7fee
95be196
550c981
40bd5dd
8f28d3e
48868a5
6329004
b29de76
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -121,7 +121,7 @@ A *pointer_type* is written as an *unmanaged_type* ([§8.8](types.md#88-unmanage | |
|
|
||
| ```ANTLR | ||
| pointer_type | ||
| : value_type ('*')+ | ||
| : unmanaged_type ('*')+ | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This change does introduce a left recursion in the grammar. In 8.8, an unmanaged_type is defined in the grammar as a value_type or a pointer_type. Then, in the prose the value_type is constrained to the builtin value types, enum types, and struct types whose members are only other unmanaged types in that list (paraphrasing here in the comment). It's true that a pointer_type can only refer to an unmanaged_type, as written in the prose in line 120. But, to avoid the recursion, a bit fix might be to revert this change and expand the prose on line 120.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. cc @Nigel-Ecma for thoughts on the impact of introducing left recursion. |
||
| | 'void' ('*')+ | ||
| ; | ||
| ``` | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The existing text makes it clear this is only for instance methods. I haven't looked up the precise definition for "receiver type for a method group conversion" - maybe that only terminology only works for instance methods only, but I wouldn't want a reader to think that
Action<string> x = SomeRefStructType.StaticMethodAcceptingString;is invalid, if that makes sense.