summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-29 14:09:51 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-29 14:09:51 +0800
commitd717794c3a9e97579bb89e54a13346cf4b1af4f4 (patch)
tree7c3d3e43ead05a599c2114e6d5fdcc33c852af48
parentb53dfacdea84c2da1d7842dbc4e1e8b7b13fd802 (diff)
downloadmrust-d717794c3a9e97579bb89e54a13346cf4b1af4f4.tar.gz
Expand format_args - Add detection for ::std/::core
-rw-r--r--src/expand/format_args.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/expand/format_args.cpp b/src/expand/format_args.cpp
index dacef203..7ac04dc5 100644
--- a/src/expand/format_args.cpp
+++ b/src/expand/format_args.cpp
@@ -5,6 +5,7 @@
#include "../parse/parseerror.hpp"
#include "../parse/tokentree.hpp"
#include "../parse/lex.hpp"
+#include <ast/crate.hpp> // for m_load_std
namespace {
@@ -308,8 +309,20 @@ class CFormatArgsExpander:
{
// TODO: Figure out what path to use (::fmt, ::core::fmt, or ::std::fmt)
- //toks.push_back( TokenTree(TOK_DOUBLE_COLON) );
- //toks.push_back( Token(TOK_IDENT, "std") ); //toks.push_back( Token(TOK_STRING, "core") );
+
+ switch(crate.m_load_std)
+ {
+ case ::AST::Crate::LOAD_NONE:
+ break;
+ case ::AST::Crate::LOAD_CORE:
+ toks.push_back( TokenTree(TOK_DOUBLE_COLON) );
+ toks.push_back( Token(TOK_STRING, "core") );
+ break;
+ case ::AST::Crate::LOAD_STD:
+ toks.push_back( TokenTree(TOK_DOUBLE_COLON) );
+ toks.push_back( Token(TOK_IDENT, "std") );
+ break;
+ }
toks.push_back( TokenTree(TOK_DOUBLE_COLON) );
toks.push_back( Token(TOK_IDENT, "fmt") );
toks.push_back( TokenTree(TOK_DOUBLE_COLON) );