summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2019-10-13 13:45:25 +0800
committerJohn Hodge <tpg@ucc.asn.au>2019-10-13 13:45:25 +0800
commit48ebcbb06c1535de01ff8e27ce7d11d8cf9ffae8 (patch)
tree554b6146e22e5ac8e34ce597fabb49c56ece32d3
parentc145a796d806524a8f413115817909aa16091f3a (diff)
downloadmrust-48ebcbb06c1535de01ff8e27ce7d11d8cf9ffae8.tar.gz
Expand - Hackily set the crate name from command line before expand
-rw-r--r--src/expand/crate_tags.cpp14
-rw-r--r--src/main.cpp4
2 files changed, 11 insertions, 7 deletions
diff --git a/src/expand/crate_tags.cpp b/src/expand/crate_tags.cpp
index 849ec459..31bb8abd 100644
--- a/src/expand/crate_tags.cpp
+++ b/src/expand/crate_tags.cpp
@@ -15,10 +15,10 @@ public:
AttrStage stage() const override { return AttrStage::Pre; }
void handle(const Span& sp, const AST::Attribute& mi, AST::Crate& crate) const override {
- if( crate.m_crate_type != AST::Crate::Type::Unknown ) {
- //ERROR(sp, E0000, "Multiple #![crate_type] attributes");
- return ;
- }
+ //if( crate.m_crate_type != AST::Crate::Type::Unknown ) {
+ // //ERROR(sp, E0000, "Multiple #![crate_type] attributes");
+ // return ;
+ //}
if( !mi.has_string() ) {
ERROR(sp, E0000, "#![crate_type] requires a string argument");
}
@@ -42,9 +42,9 @@ public:
AttrStage stage() const override { return AttrStage::Pre; }
void handle(const Span& sp, const AST::Attribute& mi, AST::Crate& crate) const override {
- if( crate.m_crate_name != "" ) {
- ERROR(sp, E0000, "Multiple #![crate_name] attributes");
- }
+ //if( crate.m_crate_name != "" ) {
+ // ERROR(sp, E0000, "Multiple #![crate_name] attributes");
+ //}
if( !mi.has_string() || mi.string() == "" ) {
ERROR(sp, E0000, "#![crate_name] requires a non-empty string argument");
}
diff --git a/src/main.cpp b/src/main.cpp
index 4760f736..e522c682 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -252,6 +252,10 @@ int main(int argc, char *argv[])
crate.load_externs();
});
+ if( params.crate_name != "" ) {
+ crate.m_crate_name = params.crate_name;
+ }
+
// Iterate all items in the AST, applying syntax extensions
CompilePhaseV("Expand", [&]() {
Expand(crate);