The lexer deals with the UTF-8 BOM and the parser cannot detect
whether there is or isn't a BOM at the start of a file. The flag isn't
relevant or useful in the AST and HIR Crate classes.
---
gcc/rust/ast/rust-ast-full-test.cc | 3 ---
gcc/rust/ast/rust-ast.h | 11 +++
gcc/rust/hir/rust-ast-lower.cc | 4 +---
gcc/rust/hir/tree/rust-hir-full-test.cc | 5 -
gcc/rust/hir/tree/rust-hir.h| 12
gcc/rust/parse/rust-parse-impl.h| 8 +---
6 files changed, 9 insertions(+), 34 deletions(-)
diff --git a/gcc/rust/ast/rust-ast-full-test.cc
b/gcc/rust/ast/rust-ast-full-test.cc
index 12ef255bcbf..dd55e1ddbd2 100644
--- a/gcc/rust/ast/rust-ast-full-test.cc
+++ b/gcc/rust/ast/rust-ast-full-test.cc
@@ -172,9 +172,6 @@ Crate::as_string () const
rust_debug ("beginning crate recursive as-string");
std::string str ("Crate: ");
- // add utf8bom
- if (has_utf8bom)
-str += "\n has utf8bom";
// inner attributes
str += append_attributes (inner_attrs, INNER);
diff --git a/gcc/rust/ast/rust-ast.h b/gcc/rust/ast/rust-ast.h
index ce55e1beb5e..75b08f8aa66 100644
--- a/gcc/rust/ast/rust-ast.h
+++ b/gcc/rust/ast/rust-ast.h
@@ -1550,8 +1550,6 @@ protected:
// A crate AST object - holds all the data for a single compilation unit
struct Crate
{
- bool has_utf8bom;
-
std::vector inner_attrs;
// dodgy spacing required here
/* TODO: is it better to have a vector of items here or a module (implicit
@@ -1563,16 +1561,14 @@ struct Crate
public:
// Constructor
Crate (std::vector > items,
-std::vector inner_attrs, bool has_utf8bom = false)
-: has_utf8bom (has_utf8bom), inner_attrs (std::move (inner_attrs)),
- items (std::move (items)),
+std::vector inner_attrs)
+: inner_attrs (std::move (inner_attrs)), items (std::move (items)),
node_id (Analysis::Mappings::get ()->get_next_node_id ())
{}
// Copy constructor with vector clone
Crate (Crate const &other)
-: has_utf8bom (other.has_utf8bom), inner_attrs (other.inner_attrs),
- node_id (other.node_id)
+: inner_attrs (other.inner_attrs), node_id (other.node_id)
{
items.reserve (other.items.size ());
for (const auto &e : other.items)
@@ -1585,7 +1581,6 @@ public:
Crate &operator= (Crate const &other)
{
inner_attrs = other.inner_attrs;
-has_utf8bom = other.has_utf8bom;
node_id = other.node_id;
items.reserve (other.items.size ());
diff --git a/gcc/rust/hir/rust-ast-lower.cc b/gcc/rust/hir/rust-ast-lower.cc
index 0f3c86dc7bf..01abd84627b 100644
--- a/gcc/rust/hir/rust-ast-lower.cc
+++ b/gcc/rust/hir/rust-ast-lower.cc
@@ -40,7 +40,6 @@ HIR::Crate
ASTLowering::go ()
{
std::vector > items;
- bool has_utf8bom = false;
for (auto it = astCrate.items.begin (); it != astCrate.items.end (); it++)
{
@@ -55,8 +54,7 @@ ASTLowering::go ()
mappings->get_next_hir_id (crate_num),
UNKNOWN_LOCAL_DEFID);
- return HIR::Crate (std::move (items), astCrate.get_inner_attrs (), mapping,
-has_utf8bom);
+ return HIR::Crate (std::move (items), astCrate.get_inner_attrs (), mapping);
}
// rust-ast-lower-block.h
diff --git a/gcc/rust/hir/tree/rust-hir-full-test.cc
b/gcc/rust/hir/tree/rust-hir-full-test.cc
index 051ba8736ad..05c75e06403 100644
--- a/gcc/rust/hir/tree/rust-hir-full-test.cc
+++ b/gcc/rust/hir/tree/rust-hir-full-test.cc
@@ -73,11 +73,6 @@ std::string
Crate::as_string () const
{
std::string str ("HIR::Crate: ");
- // add utf8bom
- if (has_utf8bom)
-{
- str += "\n has utf8bom";
-}
// inner attributes
str += "\n inner attributes: ";
diff --git a/gcc/rust/hir/tree/rust-hir.h b/gcc/rust/hir/tree/rust-hir.h
index f918f2dc106..1819d17b585 100644
--- a/gcc/rust/hir/tree/rust-hir.h
+++ b/gcc/rust/hir/tree/rust-hir.h
@@ -678,8 +678,6 @@ public:
// A crate HIR object - holds all the data for a single compilation unit
struct Crate
{
- bool has_utf8bom;
-
AST::AttrVec inner_attrs;
// dodgy spacing required here
/* TODO: is it better to have a vector of items here or a module (implicit
@@ -691,15 +689,14 @@ struct Crate
public:
// Constructor
Crate (std::vector > items, AST::AttrVec inner_attrs,
-Analysis::NodeMapping mappings, bool has_utf8bom = false)
-: has_utf8bom (has_utf8bom), inner_attrs (std::move (inner_attrs)),
- items (std::move (items)), mappings (mappings)
+Analysis::NodeMapping mappings)
+: inner_attrs (std::move (inner_attrs)), items (std::move (items)),
+ mappings (mappings)
{}
// Copy constructor with vector clone
Crate (Crate const &other)
-: has_utf8bom (other.has_utf8bom), inner_attrs (other.inner_attrs),
- mappings (other.mappings)
+: inner_attrs (other.inner_attrs), mappings (other.mappings)
{
items.reserve (other.items.size ());
for (const auto &e : other.items)
@@ -712,7