aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
diff options
context:
space:
mode:
authorSimplyTheOther <simplytheother@gmail.com>2021-01-08 15:09:08 +0800
committerSimplyTheOther <simplytheother@gmail.com>2021-01-08 15:09:08 +0800
commit238a31b33f79cddfaa40c5fd748495a5f2b34630 (patch)
treebc217d37b5e3ee41b0a69265341945389d1f4dfb /gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
parentb5f86dca7e6b53ca3701ef01ae36070a760dff78 (diff)
parentaf04ea2222b6407fb3e83759ae332d600495380c (diff)
downloadgcc-238a31b33f79cddfaa40c5fd748495a5f2b34630.zip
gcc-238a31b33f79cddfaa40c5fd748495a5f2b34630.tar.gz
gcc-238a31b33f79cddfaa40c5fd748495a5f2b34630.tar.bz2
Merge branch 'master' of https://github.com/redbrain/gccrs
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h')
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h b/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
new file mode 100644
index 0000000..c705a03
--- /dev/null
+++ b/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
@@ -0,0 +1,53 @@
+// Copyright (C) 2020 Free Software Foundation, Inc.
+
+// This file is part of GCC.
+
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+
+// GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with GCC; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#ifndef RUST_AST_RESOLVE_STRUCT_EXPR_FIELD
+#define RUST_AST_RESOLVE_STRUCT_EXPR_FIELD
+
+#include "rust-ast-resolve-base.h"
+#include "rust-ast-full.h"
+
+namespace Rust {
+namespace Resolver {
+
+// this resolves values being assigned not that the field actually exists yet.
+// We cant resolve the field to struct until type resolution since the HIR
+// Mappings don't exist yet.
+class ResolveStructExprField : public ResolverBase
+{
+public:
+ static void go (AST::StructExprField *field, NodeId parent)
+ {
+ ResolveStructExprField resolver (parent);
+ field->accept_vis (resolver);
+ }
+
+ virtual ~ResolveStructExprField () {}
+
+ void visit (AST::StructExprFieldIdentifierValue &field);
+
+ // TODO
+
+private:
+ ResolveStructExprField (NodeId parent) : ResolverBase (parent) {}
+};
+
+} // namespace Resolver
+} // namespace Rust
+
+#endif // RUST_AST_RESOLVE_STRUCT_EXPR_FIELD