21
21
22
22
#include " rust-diagnostics.h"
23
23
24
+ #include " rust-ast-lower.h"
24
25
#include " rust-ast-lower-base.h"
25
26
#include " rust-ast-lower-enumitem.h"
26
27
#include " rust-ast-lower-type.h"
@@ -59,7 +60,7 @@ class ASTLoweringItem : public ASTLoweringBase
59
60
mappings->get_next_localdef_id (crate_num));
60
61
61
62
// should be lowered from module.get_vis()
62
- HIR::Visibility vis = HIR::Visibility::create_public ( );
63
+ HIR::Visibility vis = translate_visibility ( module . get_visibility () );
63
64
64
65
auto items = std::vector<std::unique_ptr<Item>> ();
65
66
@@ -99,7 +100,7 @@ class ASTLoweringItem : public ASTLoweringBase
99
100
}
100
101
101
102
HIR::WhereClause where_clause (std::move (where_clause_items));
102
- HIR::Visibility vis = HIR::Visibility::create_public ( );
103
+ HIR::Visibility vis = translate_visibility (alias. get_visibility () );
103
104
104
105
std::vector<std::unique_ptr<HIR::GenericParam>> generic_params;
105
106
if (alias.has_generics ())
@@ -146,15 +147,16 @@ class ASTLoweringItem : public ASTLoweringBase
146
147
}
147
148
148
149
HIR::WhereClause where_clause (std::move (where_clause_items));
149
- HIR::Visibility vis = HIR::Visibility::create_public ( );
150
+ HIR::Visibility vis = translate_visibility (struct_decl. get_visibility () );
150
151
151
152
std::vector<HIR::TupleField> fields;
152
153
for (AST::TupleField &field : struct_decl.get_fields ())
153
154
{
154
155
if (field.get_field_type ()->is_marked_for_strip ())
155
156
continue ;
156
157
157
- HIR::Visibility vis = HIR::Visibility::create_public ();
158
+ // FIXME: How do we get the visibility from here?
159
+ HIR::Visibility vis = translate_visibility (field.get_visibility ());
158
160
HIR::Type *type
159
161
= ASTLoweringType::translate (field.get_field_type ().get ());
160
162
@@ -209,7 +211,8 @@ class ASTLoweringItem : public ASTLoweringBase
209
211
}
210
212
211
213
HIR::WhereClause where_clause (std::move (where_clause_items));
212
- HIR::Visibility vis = HIR::Visibility::create_public ();
214
+
215
+ HIR::Visibility vis = translate_visibility (struct_decl.get_visibility ());
213
216
214
217
bool is_unit = struct_decl.is_unit_struct ();
215
218
std::vector<HIR::StructField> fields;
@@ -218,7 +221,7 @@ class ASTLoweringItem : public ASTLoweringBase
218
221
if (field.get_field_type ()->is_marked_for_strip ())
219
222
continue ;
220
223
221
- HIR::Visibility vis = HIR::Visibility::create_public ( );
224
+ HIR::Visibility vis = translate_visibility (field. get_visibility () );
222
225
HIR::Type *type
223
226
= ASTLoweringType::translate (field.get_field_type ().get ());
224
227
@@ -276,7 +279,7 @@ class ASTLoweringItem : public ASTLoweringBase
276
279
}
277
280
278
281
HIR::WhereClause where_clause (std::move (where_clause_items));
279
- HIR::Visibility vis = HIR::Visibility::create_public ( );
282
+ HIR::Visibility vis = translate_visibility (enum_decl. get_visibility () );
280
283
281
284
// bool is_unit = enum_decl.is_zero_variant ();
282
285
std::vector<std::unique_ptr<HIR::EnumItem>> items;
@@ -326,15 +329,16 @@ class ASTLoweringItem : public ASTLoweringBase
326
329
std::unique_ptr<HIR::WhereClauseItem> (i));
327
330
}
328
331
HIR::WhereClause where_clause (std::move (where_clause_items));
329
- HIR::Visibility vis = HIR::Visibility::create_public ( );
332
+ HIR::Visibility vis = translate_visibility (union_decl. get_visibility () );
330
333
331
334
std::vector<HIR::StructField> variants;
332
335
for (AST::StructField &variant : union_decl.get_variants ())
333
336
{
334
337
if (variant.get_field_type ()->is_marked_for_strip ())
335
338
continue ;
336
339
337
- HIR::Visibility vis = HIR::Visibility::create_public ();
340
+ // FIXME: Does visibility apply here?
341
+ HIR::Visibility vis = translate_visibility (variant.get_visibility ());
338
342
HIR::Type *type
339
343
= ASTLoweringType::translate (variant.get_field_type ().get ());
340
344
@@ -375,7 +379,7 @@ class ASTLoweringItem : public ASTLoweringBase
375
379
376
380
void visit (AST::StaticItem &var) override
377
381
{
378
- HIR::Visibility vis = HIR::Visibility::create_public ( );
382
+ HIR::Visibility vis = translate_visibility (var. get_visibility () );
379
383
380
384
HIR::Type *type = ASTLoweringType::translate (var.get_type ().get ());
381
385
HIR::Expr *expr = ASTLoweringExpr::translate (var.get_expr ().get ());
@@ -401,7 +405,7 @@ class ASTLoweringItem : public ASTLoweringBase
401
405
402
406
void visit (AST::ConstantItem &constant) override
403
407
{
404
- HIR::Visibility vis = HIR::Visibility::create_public ( );
408
+ HIR::Visibility vis = translate_visibility (constant. get_visibility () );
405
409
406
410
HIR::Type *type = ASTLoweringType::translate (constant.get_type ().get ());
407
411
HIR::Expr *expr = ASTLoweringExpr::translate (constant.get_expr ().get ());
@@ -441,7 +445,7 @@ class ASTLoweringItem : public ASTLoweringBase
441
445
HIR::WhereClause where_clause (std::move (where_clause_items));
442
446
HIR::FunctionQualifiers qualifiers
443
447
= lower_qualifiers (function.get_qualifiers ());
444
- HIR::Visibility vis = HIR::Visibility::create_public ( );
448
+ HIR::Visibility vis = translate_visibility (function. get_visibility () );
445
449
446
450
// need
447
451
std::vector<std::unique_ptr<HIR::GenericParam>> generic_params;
@@ -530,7 +534,7 @@ class ASTLoweringItem : public ASTLoweringBase
530
534
}
531
535
532
536
HIR::WhereClause where_clause (std::move (where_clause_items));
533
- HIR::Visibility vis = HIR::Visibility::create_public ( );
537
+ HIR::Visibility vis = translate_visibility (impl_block. get_visibility () );
534
538
535
539
std::vector<std::unique_ptr<HIR::GenericParam>> generic_params;
536
540
if (impl_block.has_generics ())
@@ -619,7 +623,7 @@ class ASTLoweringItem : public ASTLoweringBase
619
623
}
620
624
HIR::WhereClause where_clause (std::move (where_clause_items));
621
625
622
- HIR::Visibility vis = HIR::Visibility::create_public ( );
626
+ HIR::Visibility vis = translate_visibility (trait. get_visibility () );
623
627
624
628
std::vector<std::unique_ptr<HIR::GenericParam>> generic_params;
625
629
if (trait.has_generics ())
@@ -692,7 +696,7 @@ class ASTLoweringItem : public ASTLoweringBase
692
696
std::unique_ptr<HIR::WhereClauseItem> (i));
693
697
}
694
698
HIR::WhereClause where_clause (std::move (where_clause_items));
695
- HIR::Visibility vis = HIR::Visibility::create_public ( );
699
+ HIR::Visibility vis = translate_visibility (impl_block. get_visibility () );
696
700
697
701
std::vector<std::unique_ptr<HIR::GenericParam>> generic_params;
698
702
if (impl_block.has_generics ())
@@ -774,7 +778,7 @@ class ASTLoweringItem : public ASTLoweringBase
774
778
775
779
void visit (AST::ExternBlock &extern_block) override
776
780
{
777
- HIR::Visibility vis = HIR::Visibility::create_public ( );
781
+ HIR::Visibility vis = translate_visibility (extern_block. get_visibility () );
778
782
779
783
std::vector<std::unique_ptr<HIR::ExternalItem>> extern_items;
780
784
for (auto &item : extern_block.get_extern_items ())
0 commit comments