aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-02-23 15:45:06 +0000
committergingerBill <bill@gingerbill.org>2021-02-23 15:45:06 +0000
commit41b854f192a5a7d190a4b49496638254ed0dbb64 (patch)
tree59b7268722a78eaa1e67b18d7527df9912b147ca /src/parser.cpp
parent28f279329da6f31b895145b9a021bacc7d9eea45 (diff)
Remove `#opaque` types
Diffstat (limited to 'src/parser.cpp')
-rw-r--r--src/parser.cpp14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/parser.cpp b/src/parser.cpp
index a833c6d25..84987c51f 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -90,7 +90,6 @@ Token ast_token(Ast *node) {
case Ast_TypeidType: return node->TypeidType.token;
case Ast_HelperType: return node->HelperType.token;
case Ast_DistinctType: return node->DistinctType.token;
- case Ast_OpaqueType: return node->OpaqueType.token;
case Ast_PolyType: return node->PolyType.token;
case Ast_ProcType: return node->ProcType.token;
case Ast_RelativeType: return ast_token(node->RelativeType.tag);
@@ -380,9 +379,6 @@ Ast *clone_ast(Ast *node) {
case Ast_DistinctType:
n->DistinctType.type = clone_ast(n->DistinctType.type);
break;
- case Ast_OpaqueType:
- n->OpaqueType.type = clone_ast(n->OpaqueType.type);
- break;
case Ast_ProcType:
n->ProcType.params = clone_ast(n->ProcType.params);
n->ProcType.results = clone_ast(n->ProcType.results);
@@ -952,12 +948,6 @@ Ast *ast_distinct_type(AstFile *f, Token token, Ast *type) {
return result;
}
-Ast *ast_opaque_type(AstFile *f, Token token, Ast *type) {
- Ast *result = alloc_ast_node(f, Ast_OpaqueType);
- result->OpaqueType.token = token;
- result->OpaqueType.type = type;
- return result;
-}
Ast *ast_poly_type(AstFile *f, Token token, Ast *type, Ast *specialization) {
Ast *result = alloc_ast_node(f, Ast_PolyType);
@@ -2009,8 +1999,8 @@ Ast *parse_operand(AstFile *f, bool lhs) {
Ast *type = parse_type(f);
return ast_relative_type(f, tag, type);
} else if (name.string == "opaque") {
- Ast *type = parse_type(f);
- return ast_opaque_type(f, token, type);
+ syntax_warning(token, "'#opaque' has been removed and will do nothing to the applied type");
+ return parse_type(f);
} else if (name.string == "force_inline" ||
name.string == "force_no_inline") {
return parse_force_inlining_operand(f, name);