diff options
Diffstat (limited to 'gcc/rust')
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-type.cc | 6 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-type.h | 3 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check-type.cc | 6 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check-type.h | 4 |
4 files changed, 16 insertions, 3 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-type.cc b/gcc/rust/resolve/rust-ast-resolve-type.cc index cb5a18d..1d004b1 100644 --- a/gcc/rust/resolve/rust-ast-resolve-type.cc +++ b/gcc/rust/resolve/rust-ast-resolve-type.cc @@ -51,6 +51,12 @@ ResolveType::visit (AST::TraitObjectType &type) } void +ResolveType::visit (AST::ParenthesisedType &type) +{ + resolved_node = ResolveType::go (*type.get_type_in_parens ()); +} + +void ResolveType::visit (AST::ReferenceType &type) { resolved_node = ResolveType::go (type.get_type_referenced ()); diff --git a/gcc/rust/resolve/rust-ast-resolve-type.h b/gcc/rust/resolve/rust-ast-resolve-type.h index 518c0d8..5e8cdb1 100644 --- a/gcc/rust/resolve/rust-ast-resolve-type.h +++ b/gcc/rust/resolve/rust-ast-resolve-type.h @@ -24,6 +24,7 @@ #include "rust-diagnostics.h" #include "rust-hir-map.h" #include "rust-path.h" +#include "rust-type.h" #include "util/rust-hir-map.h" namespace Rust { @@ -143,6 +144,8 @@ public: void visit (AST::TraitObjectType &type) override; + void visit (AST::ParenthesisedType &type) override; + void visit (AST::SliceType &type) override; private: diff --git a/gcc/rust/typecheck/rust-hir-type-check-type.cc b/gcc/rust/typecheck/rust-hir-type-check-type.cc index 4ea1a49..859cdfe 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-type.cc +++ b/gcc/rust/typecheck/rust-hir-type-check-type.cc @@ -791,6 +791,12 @@ TypeCheckType::visit (HIR::TraitObjectType &type) } void +TypeCheckType::visit (HIR::ParenthesisedType &type) +{ + translated = TypeCheckType::Resolve (type.get_type_in_parens ()); +} + +void TypeCheckType::visit (HIR::ArrayType &type) { auto capacity_type = TypeCheckExpr::Resolve (type.get_size_expr ()); diff --git a/gcc/rust/typecheck/rust-hir-type-check-type.h b/gcc/rust/typecheck/rust-hir-type-check-type.h index bf5589c..1da01b8 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-type.h +++ b/gcc/rust/typecheck/rust-hir-type-check-type.h @@ -59,6 +59,7 @@ public: void visit (HIR::InferredType &type) override; void visit (HIR::NeverType &type) override; void visit (HIR::TraitObjectType &type) override; + void visit (HIR::ParenthesisedType &type) override; void visit (HIR::TypePathSegmentFunction &segment) override { /* TODO */ @@ -69,9 +70,6 @@ public: void visit (HIR::ImplTraitType &type) override { /* TODO */ } - void visit (HIR::ParenthesisedType &type) override - { /* TODO */ - } void visit (HIR::ImplTraitTypeOneBound &type) override { /* TODO */ } |