Parse self in expressions. (#2697)

`self` wasn't being handled in expression logic, only parameter logic. This is needed for `self.x`.

Also renames SelfDeducedParameter to SelfIdentifier because it's parsed fairly consistently with Identifier; this better represents the situations where `self` will need to be handled, it's where `Identifier` is allowed (although `Identifier` could also refer to a type... but I still think `SelfDeducedParameter` is a more difficult to understand name).
This commit is contained in:
Jon Ross-Perkins
2023-03-20 14:13:29 -07:00
committed by GitHub
parent f50ca72797
commit d0105e119f
9 changed files with 92 additions and 12 deletions
+2 -2
View File
@@ -338,10 +338,10 @@ CARBON_PARSE_NODE_KIND_BRACKET(NamedConstraintDeclaration,
NamedConstraintIntroducer)
// The `self` name and `Self` type keywords. Typically of the form `self: Self`:
// SelfDeducedParameter
// SelfIdentifier
// SelfType
// PatternBinding
CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfDeducedParameter, 0)
CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfIdentifier, 0)
CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfType, 0)
#undef CARBON_PARSE_NODE_KIND