Rename self/Self enums to SelfValueIdentifier/SelfTypeIdentifier (#2701)

Using `Identifier` because `self` and `Self` will resolve to different things. While `i32` uses `Literal`, it'd always resolve to the same type.
This commit is contained in:
Jon Ross-Perkins
2023-03-22 10:07:09 -07:00
committed by GitHub
parent df289efac4
commit e89fb83e7e
11 changed files with 104 additions and 106 deletions
+53 -57
View File
@@ -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
+8 -6
View File
@@ -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
+6 -6
View File
@@ -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;
+4 -4
View File
@@ -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},
+7 -7
View File
@@ -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},
@@ -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},
@@ -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},
@@ -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},
@@ -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},
@@ -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},
@@ -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;
}