diff --git a/toolchain/lexer/token_kind.def b/toolchain/lexer/token_kind.def index 502c644bfa81..465000552359 100644 --- a/toolchain/lexer/token_kind.def +++ b/toolchain/lexer/token_kind.def @@ -93,22 +93,18 @@ CARBON_SYMBOL_TOKEN(Tilde, "~") #define CARBON_OPENING_GROUP_SYMBOL_TOKEN(Name, Spelling, ClosingName) \ CARBON_SYMBOL_TOKEN(Name, Spelling) #endif -// clang-format on CARBON_OPENING_GROUP_SYMBOL_TOKEN(OpenParen, "(", CloseParen) CARBON_OPENING_GROUP_SYMBOL_TOKEN(OpenCurlyBrace, "{", CloseCurlyBrace) CARBON_OPENING_GROUP_SYMBOL_TOKEN(OpenSquareBracket, "[", CloseSquareBracket) -// clang-format off #undef CARBON_OPENING_GROUP_SYMBOL_TOKEN #ifndef CARBON_CLOSING_GROUP_SYMBOL_TOKEN -#define CARBON_CLOSING_GROUP_SYMBOL_TOKEN(Name, Spelling, OpeningName) \ +#define CARBON_CLOSING_GROUP_SYMBOL_TOKEN(Name, Spelling, OpeningName) \ CARBON_SYMBOL_TOKEN(Name, Spelling) #endif -// clang-format on CARBON_CLOSING_GROUP_SYMBOL_TOKEN(CloseParen, ")", OpenParen) CARBON_CLOSING_GROUP_SYMBOL_TOKEN(CloseCurlyBrace, "}", OpenCurlyBrace) CARBON_CLOSING_GROUP_SYMBOL_TOKEN(CloseSquareBracket, "]", OpenSquareBracket) -// clang-format off #undef CARBON_CLOSING_GROUP_SYMBOL_TOKEN #undef CARBON_SYMBOL_TOKEN @@ -117,61 +113,61 @@ CARBON_CLOSING_GROUP_SYMBOL_TOKEN(CloseSquareBracket, "]", OpenSquareBracket) #define CARBON_KEYWORD_TOKEN(Name, Spelling) CARBON_TOKEN(Name) #endif // clang-format off -CARBON_KEYWORD_TOKEN(Abstract, "abstract") -CARBON_KEYWORD_TOKEN(Addr, "addr") -CARBON_KEYWORD_TOKEN(Alias, "alias") -CARBON_KEYWORD_TOKEN(And, "and") -CARBON_KEYWORD_TOKEN(Api, "api") -CARBON_KEYWORD_TOKEN(As, "as") -CARBON_KEYWORD_TOKEN(Auto, "auto") -CARBON_KEYWORD_TOKEN(Base, "base") -CARBON_KEYWORD_TOKEN(Break, "break") -CARBON_KEYWORD_TOKEN(Case, "case") -CARBON_KEYWORD_TOKEN(Class, "class") -CARBON_KEYWORD_TOKEN(Constraint, "constraint") -CARBON_KEYWORD_TOKEN(Continue, "continue") -CARBON_KEYWORD_TOKEN(Default, "default") -CARBON_KEYWORD_TOKEN(Else, "else") -CARBON_KEYWORD_TOKEN(Extends, "extends") -CARBON_KEYWORD_TOKEN(External, "external") -CARBON_KEYWORD_TOKEN(Final, "final") -CARBON_KEYWORD_TOKEN(Fn, "fn") -CARBON_KEYWORD_TOKEN(For, "for") -CARBON_KEYWORD_TOKEN(In, "in") -CARBON_KEYWORD_TOKEN(Friend, "friend") -CARBON_KEYWORD_TOKEN(If, "if") -CARBON_KEYWORD_TOKEN(Impl, "impl") -CARBON_KEYWORD_TOKEN(Import, "import") -CARBON_KEYWORD_TOKEN(Interface, "interface") -CARBON_KEYWORD_TOKEN(Is, "is") -CARBON_KEYWORD_TOKEN(Let, "let") -CARBON_KEYWORD_TOKEN(Library, "library") -CARBON_KEYWORD_TOKEN(Match, "match") -CARBON_KEYWORD_TOKEN(Namespace, "namespace") -CARBON_KEYWORD_TOKEN(Not, "not") -CARBON_KEYWORD_TOKEN(Observe, "observe") -CARBON_KEYWORD_TOKEN(Or, "or") -CARBON_KEYWORD_TOKEN(Override, "override") -CARBON_KEYWORD_TOKEN(Package, "package") -CARBON_KEYWORD_TOKEN(Partial, "partial") -CARBON_KEYWORD_TOKEN(Private, "private") -CARBON_KEYWORD_TOKEN(Protected, "protected") -CARBON_KEYWORD_TOKEN(Return, "return") -CARBON_KEYWORD_TOKEN(Returned, "returned") -CARBON_KEYWORD_TOKEN(SelfParameter, "self") -CARBON_KEYWORD_TOKEN(SelfType, "Self") +CARBON_KEYWORD_TOKEN(Abstract, "abstract") +CARBON_KEYWORD_TOKEN(Addr, "addr") +CARBON_KEYWORD_TOKEN(Alias, "alias") +CARBON_KEYWORD_TOKEN(And, "and") +CARBON_KEYWORD_TOKEN(Api, "api") +CARBON_KEYWORD_TOKEN(As, "as") +CARBON_KEYWORD_TOKEN(Auto, "auto") +CARBON_KEYWORD_TOKEN(Base, "base") +CARBON_KEYWORD_TOKEN(Break, "break") +CARBON_KEYWORD_TOKEN(Case, "case") +CARBON_KEYWORD_TOKEN(Class, "class") +CARBON_KEYWORD_TOKEN(Constraint, "constraint") +CARBON_KEYWORD_TOKEN(Continue, "continue") +CARBON_KEYWORD_TOKEN(Default, "default") +CARBON_KEYWORD_TOKEN(Else, "else") +CARBON_KEYWORD_TOKEN(Extends, "extends") +CARBON_KEYWORD_TOKEN(External, "external") +CARBON_KEYWORD_TOKEN(Final, "final") +CARBON_KEYWORD_TOKEN(Fn, "fn") +CARBON_KEYWORD_TOKEN(For, "for") +CARBON_KEYWORD_TOKEN(Friend, "friend") +CARBON_KEYWORD_TOKEN(If, "if") +CARBON_KEYWORD_TOKEN(Impl, "impl") +CARBON_KEYWORD_TOKEN(Import, "import") +CARBON_KEYWORD_TOKEN(In, "in") +CARBON_KEYWORD_TOKEN(Interface, "interface") +CARBON_KEYWORD_TOKEN(Is, "is") +CARBON_KEYWORD_TOKEN(Let, "let") +CARBON_KEYWORD_TOKEN(Library, "library") +CARBON_KEYWORD_TOKEN(Match, "match") +CARBON_KEYWORD_TOKEN(Namespace, "namespace") +CARBON_KEYWORD_TOKEN(Not, "not") +CARBON_KEYWORD_TOKEN(Observe, "observe") +CARBON_KEYWORD_TOKEN(Or, "or") +CARBON_KEYWORD_TOKEN(Override, "override") +CARBON_KEYWORD_TOKEN(Package, "package") +CARBON_KEYWORD_TOKEN(Partial, "partial") +CARBON_KEYWORD_TOKEN(Private, "private") +CARBON_KEYWORD_TOKEN(Protected, "protected") +CARBON_KEYWORD_TOKEN(Return, "return") +CARBON_KEYWORD_TOKEN(Returned, "returned") +CARBON_KEYWORD_TOKEN(SelfTypeIdentifier, "Self") +CARBON_KEYWORD_TOKEN(SelfValueIdentifier, "self") // TODO: Although we provide a String type literal, it's not standardized. -CARBON_KEYWORD_TOKEN(StringTypeLiteral, "String") -CARBON_KEYWORD_TOKEN(Template, "template") -CARBON_KEYWORD_TOKEN(Then, "then") +CARBON_KEYWORD_TOKEN(StringTypeLiteral, "String") +CARBON_KEYWORD_TOKEN(Template, "template") +CARBON_KEYWORD_TOKEN(Then, "then") // Underscore is tokenized as a keyword because it's part of identifiers. -CARBON_KEYWORD_TOKEN(Underscore, "_") -CARBON_KEYWORD_TOKEN(Var, "var") -CARBON_KEYWORD_TOKEN(Virtual, "virtual") -CARBON_KEYWORD_TOKEN(Where, "where") -CARBON_KEYWORD_TOKEN(While, "while") +CARBON_KEYWORD_TOKEN(Underscore, "_") +CARBON_KEYWORD_TOKEN(Var, "var") +CARBON_KEYWORD_TOKEN(Virtual, "virtual") +CARBON_KEYWORD_TOKEN(Where, "where") +CARBON_KEYWORD_TOKEN(While, "while") // TODO: In use by precedence.cpp, but not standardized. -CARBON_KEYWORD_TOKEN(Xor, "xor") +CARBON_KEYWORD_TOKEN(Xor, "xor") // clang-format on #undef CARBON_KEYWORD_TOKEN diff --git a/toolchain/parser/parse_node_kind.def b/toolchain/parser/parse_node_kind.def index 21df7a19aff3..08b08a5b99c2 100644 --- a/toolchain/parser/parse_node_kind.def +++ b/toolchain/parser/parse_node_kind.def @@ -107,7 +107,8 @@ CARBON_PARSE_NODE_KIND_BRACKET(DeducedParameterList, DeducedParameterListStart) // _external_: type expression // [Generic]PatternBinding // -// Address and Template may be parents to [Generic]PatternBinding, in that order. +// Address and Template may be parents to [Generic]PatternBinding, in that +// order. CARBON_PARSE_NODE_KIND_CHILD_COUNT(PatternBinding, 2) CARBON_PARSE_NODE_KIND_CHILD_COUNT(GenericPatternBinding, 2) CARBON_PARSE_NODE_KIND_CHILD_COUNT(Address, 1) @@ -337,12 +338,13 @@ CARBON_PARSE_NODE_KIND_BRACKET(NamedConstraintDefinition, CARBON_PARSE_NODE_KIND_BRACKET(NamedConstraintDeclaration, NamedConstraintIntroducer) -// The `self` name and `Self` type keywords. Typically of the form `self: Self`: -// SelfIdentifier -// SelfType +// The `self` value and `Self` type identifier keywords. Typically of the form +// `self: Self`: +// SelfValueIdentifier +// SelfTypeIdentifier // PatternBinding -CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfIdentifier, 0) -CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfType, 0) +CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfValueIdentifier, 0) +CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfTypeIdentifier, 0) #undef CARBON_PARSE_NODE_KIND #undef CARBON_PARSE_NODE_KIND_BRACKET diff --git a/toolchain/parser/parser.cpp b/toolchain/parser/parser.cpp index 4df10c88181e..d1f1f72cfbba 100644 --- a/toolchain/parser/parser.cpp +++ b/toolchain/parser/parser.cpp @@ -948,13 +948,13 @@ auto Parser::HandleExpressionInPostfixState() -> void { PushState(ParserState::ParenExpression); break; } - case TokenKind::SelfParameter: { - AddLeafNode(ParseNodeKind::SelfIdentifier, Consume()); + case TokenKind::SelfValueIdentifier: { + AddLeafNode(ParseNodeKind::SelfValueIdentifier, Consume()); PushState(state); break; } - case TokenKind::SelfType: { - AddLeafNode(ParseNodeKind::SelfType, Consume()); + case TokenKind::SelfTypeIdentifier: { + AddLeafNode(ParseNodeKind::SelfTypeIdentifier, Consume()); PushState(state); break; } @@ -1498,8 +1498,8 @@ auto Parser::HandlePattern(PatternKind pattern_kind) -> void { if (auto identifier = ConsumeIf(TokenKind::Identifier)) { AddLeafNode(ParseNodeKind::DeclaredName, *identifier); } else if (pattern_kind == PatternKind::DeducedParameter) { - if (auto self = ConsumeIf(TokenKind::SelfParameter)) { - AddLeafNode(ParseNodeKind::SelfIdentifier, *self); + if (auto self = ConsumeIf(TokenKind::SelfValueIdentifier)) { + AddLeafNode(ParseNodeKind::SelfValueIdentifier, *self); } else { on_error(); return; diff --git a/toolchain/parser/testdata/class/fn_definitions.carbon b/toolchain/parser/testdata/class/fn_definitions.carbon index 6ce3ae1fde32..39f3b686bcc7 100644 --- a/toolchain/parser/testdata/class/fn_definitions.carbon +++ b/toolchain/parser/testdata/class/fn_definitions.carbon @@ -12,7 +12,7 @@ // CHECK:STDOUT: {kind: 'DeclaredName', text: 'Make'}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, // CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7}, // CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'}, @@ -27,8 +27,8 @@ // CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'Baz'}, // CHECK:STDOUT: {kind: 'DeducedParameterListStart', text: '['}, -// CHECK:STDOUT: {kind: 'SelfIdentifier', text: 'self'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfValueIdentifier', text: 'self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'DeducedParameterList', text: ']', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, @@ -37,7 +37,7 @@ // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 12}, // CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'}, -// CHECK:STDOUT: {kind: 'SelfIdentifier', text: 'self'}, +// CHECK:STDOUT: {kind: 'SelfValueIdentifier', text: 'self'}, // CHECK:STDOUT: {kind: 'DesignatedName', text: 'x'}, // CHECK:STDOUT: {kind: 'DesignatorExpression', text: '.', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ReturnStatement', text: ';', subtree_size: 5}, diff --git a/toolchain/parser/testdata/generics/interface/basic.carbon b/toolchain/parser/testdata/generics/interface/basic.carbon index 1162986ee5f1..2e8a947e76f9 100644 --- a/toolchain/parser/testdata/generics/interface/basic.carbon +++ b/toolchain/parser/testdata/generics/interface/basic.carbon @@ -11,31 +11,31 @@ // CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'Add'}, // CHECK:STDOUT: {kind: 'DeducedParameterListStart', text: '['}, -// CHECK:STDOUT: {kind: 'SelfIdentifier', text: 'self'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfValueIdentifier', text: 'self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'DeducedParameterList', text: ']', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'b'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 5}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 15}, // CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'Add'}, // CHECK:STDOUT: {kind: 'DeducedParameterListStart', text: '['}, -// CHECK:STDOUT: {kind: 'SelfIdentifier', text: 'self'}, +// CHECK:STDOUT: {kind: 'SelfValueIdentifier', text: 'self'}, // CHECK:STDOUT: {kind: 'NameReference', text: 'foo'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'DeducedParameterList', text: ']', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'b'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 5}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 15}, // CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 34}, diff --git a/toolchain/parser/testdata/generics/interface/fail_no_impl_allowed.carbon b/toolchain/parser/testdata/generics/interface/fail_no_impl_allowed.carbon index 439e46bc626f..4e4996ff301f 100644 --- a/toolchain/parser/testdata/generics/interface/fail_no_impl_allowed.carbon +++ b/toolchain/parser/testdata/generics/interface/fail_no_impl_allowed.carbon @@ -11,16 +11,16 @@ // CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'Add'}, // CHECK:STDOUT: {kind: 'DeducedParameterListStart', text: '['}, -// CHECK:STDOUT: {kind: 'SelfIdentifier', text: 'self'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfValueIdentifier', text: 'self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'DeducedParameterList', text: ']', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'b'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 5}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: 'fn', has_error: yes, subtree_size: 15}, // CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 19}, diff --git a/toolchain/parser/testdata/generics/interface/fail_self_param_syntax.carbon b/toolchain/parser/testdata/generics/interface/fail_self_param_syntax.carbon index 9bbb9055fc24..13c186c3ec28 100644 --- a/toolchain/parser/testdata/generics/interface/fail_self_param_syntax.carbon +++ b/toolchain/parser/testdata/generics/interface/fail_self_param_syntax.carbon @@ -15,10 +15,10 @@ // CHECK:STDOUT: {kind: 'DeducedParameterList', text: ']', has_error: yes, subtree_size: 3}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'b'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 5}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 13}, // CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'}, @@ -27,10 +27,10 @@ // CHECK:STDOUT: {kind: 'DeducedParameterList', text: ']', has_error: yes, subtree_size: 2}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'b'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 5}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 12}, // CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 29}, diff --git a/toolchain/parser/testdata/generics/interface/non_instance_fn.carbon b/toolchain/parser/testdata/generics/interface/non_instance_fn.carbon index 12ababbba5a4..c57898853958 100644 --- a/toolchain/parser/testdata/generics/interface/non_instance_fn.carbon +++ b/toolchain/parser/testdata/generics/interface/non_instance_fn.carbon @@ -12,7 +12,7 @@ // CHECK:STDOUT: {kind: 'DeclaredName', text: 'FooFactory'}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, // CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 7}, // CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 11}, diff --git a/toolchain/parser/testdata/generics/interface/self_pointer.carbon b/toolchain/parser/testdata/generics/interface/self_pointer.carbon index c22846dabb9c..e1c6b882fd44 100644 --- a/toolchain/parser/testdata/generics/interface/self_pointer.carbon +++ b/toolchain/parser/testdata/generics/interface/self_pointer.carbon @@ -11,24 +11,24 @@ // CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'Sub'}, // CHECK:STDOUT: {kind: 'DeducedParameterListStart', text: '['}, -// CHECK:STDOUT: {kind: 'SelfIdentifier', text: 'self'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfValueIdentifier', text: 'self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4}, // CHECK:STDOUT: {kind: 'Address', text: 'addr', subtree_size: 5}, // CHECK:STDOUT: {kind: 'DeducedParameterList', text: ']', subtree_size: 7}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'b'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 5}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 17}, // CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'Sub'}, // CHECK:STDOUT: {kind: 'DeducedParameterListStart', text: '['}, -// CHECK:STDOUT: {kind: 'SelfIdentifier', text: 'self'}, +// CHECK:STDOUT: {kind: 'SelfValueIdentifier', text: 'self'}, // CHECK:STDOUT: {kind: 'NameReference', text: 'foo'}, // CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4}, @@ -36,10 +36,10 @@ // CHECK:STDOUT: {kind: 'DeducedParameterList', text: ']', subtree_size: 7}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'b'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 5}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 17}, // CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 38}, diff --git a/toolchain/parser/testdata/generics/named_constraint/fail_no_impl_allowed.carbon b/toolchain/parser/testdata/generics/named_constraint/fail_no_impl_allowed.carbon index af9e57ef76ce..0cfc7f5a0f70 100644 --- a/toolchain/parser/testdata/generics/named_constraint/fail_no_impl_allowed.carbon +++ b/toolchain/parser/testdata/generics/named_constraint/fail_no_impl_allowed.carbon @@ -11,16 +11,16 @@ // CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'Add'}, // CHECK:STDOUT: {kind: 'DeducedParameterListStart', text: '['}, -// CHECK:STDOUT: {kind: 'SelfIdentifier', text: 'self'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfValueIdentifier', text: 'self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'DeducedParameterList', text: ']', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ParameterListStart', text: '('}, // CHECK:STDOUT: {kind: 'DeclaredName', text: 'b'}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 5}, -// CHECK:STDOUT: {kind: 'SelfType', text: 'Self'}, +// CHECK:STDOUT: {kind: 'SelfTypeIdentifier', text: 'Self'}, // CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2}, // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: 'fn', has_error: yes, subtree_size: 15}, // CHECK:STDOUT: {kind: 'NamedConstraintDefinition', text: '}', subtree_size: 19}, diff --git a/toolchain/semantics/semantics_parse_tree_handler.cpp b/toolchain/semantics/semantics_parse_tree_handler.cpp index 51dc70cbfc76..4eadff743ccf 100644 --- a/toolchain/semantics/semantics_parse_tree_handler.cpp +++ b/toolchain/semantics/semantics_parse_tree_handler.cpp @@ -922,15 +922,15 @@ auto SemanticsParseTreeHandler::HandleReturnType(ParseTree::Node parse_node) return true; } -auto SemanticsParseTreeHandler::HandleSelfIdentifier(ParseTree::Node parse_node) - -> bool { - emitter_->Emit(parse_node, SemanticsTodo, "HandleSelfIdentifier"); +auto SemanticsParseTreeHandler::HandleSelfTypeIdentifier( + ParseTree::Node parse_node) -> bool { + emitter_->Emit(parse_node, SemanticsTodo, "HandleSelfTypeIdentifier"); return false; } -auto SemanticsParseTreeHandler::HandleSelfType(ParseTree::Node parse_node) - -> bool { - emitter_->Emit(parse_node, SemanticsTodo, "HandleSelfType"); +auto SemanticsParseTreeHandler::HandleSelfValueIdentifier( + ParseTree::Node parse_node) -> bool { + emitter_->Emit(parse_node, SemanticsTodo, "HandleSelfValueIdentifier"); return false; }