From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1643) id 66DFA384F497; Fri, 18 Nov 2022 23:33:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 66DFA384F497 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1668814409; bh=7p/Ud+n/sbStBHwSrBx9HSlD3gsqjXRWgcmvn1eebOM=; h=From:To:Subject:Date:From; b=jWvS8QFvZjfrVAF6iwiXVBBoh2AK3CxFYp5IOnWfAl5PXdt9KTzqipCFsUtVQj3GO mU6qHejJutuKcLd5Y/FoyweNdzDJjzMQM4aU7hziaaX83KTZaDuDS+kyiMTmbwkPRp n6XW6EREWV+zjNh1OiAdHJJOU3eNeFBS6mKSKODY= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Thomas Schwinge To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/rust/master] ast: Dump raw pointer type X-Act-Checkin: gcc X-Git-Author: Jakub Dupak X-Git-Refname: refs/heads/devel/rust/master X-Git-Oldrev: 0eaaeb4b3592075fe30d3a8aa57941dd40c6f256 X-Git-Newrev: 20bf6802ba7b964ec1e570dd4fec971fa3d678f6 Message-Id: <20221118233329.66DFA384F497@sourceware.org> Date: Fri, 18 Nov 2022 23:33:29 +0000 (GMT) List-Id: https://gcc.gnu.org/g:20bf6802ba7b964ec1e570dd4fec971fa3d678f6 commit 20bf6802ba7b964ec1e570dd4fec971fa3d678f6 Author: Jakub Dupak Date: Sun Nov 6 21:21:34 2022 +0100 ast: Dump raw pointer type Signed-off-by: Jakub Dupak Diff: --- gcc/rust/ast/rust-ast-dump.cc | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/gcc/rust/ast/rust-ast-dump.cc b/gcc/rust/ast/rust-ast-dump.cc index 273a5109846..e6d6e070709 100644 --- a/gcc/rust/ast/rust-ast-dump.cc +++ b/gcc/rust/ast/rust-ast-dump.cc @@ -1588,12 +1588,36 @@ Dump::visit (NeverType &) {} void -Dump::visit (RawPointerType &) -{} +Dump::visit (RawPointerType &type) +{ + // Syntax: + // * ( mut | const ) TypeNoBounds + + if (type.get_pointer_type () == RawPointerType::MUT) + stream << "*mut "; + else /* RawPointerType::CONST */ + stream << "*const "; + + visit (type.get_type_pointed_to ()); +} void Dump::visit (ReferenceType &type) { + // Syntax: + // & Lifetime? mut? TypeNoBounds + + stream << '&'; + + if (type.has_lifetime ()) + { + visit (type.get_lifetime ()); + stream << ' '; + } + + if (type.get_has_mut ()) + stream << "mut "; + visit (type.get_type_referenced ()); } @@ -1606,7 +1630,7 @@ Dump::visit (ArrayType &type) stream << '['; visit (type.get_elem_type ()); stream << "; "; - visit(type.get_size_expr()); + visit (type.get_size_expr ()); stream << ']'; }