about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-08-01 01:56:32 +0000
committerbors <bors@rust-lang.org>2014-08-01 01:56:32 +0000
commitb495933a7fdc5e7b28ddbb058d1e2dab330ace7b (patch)
tree08789d8ee08603d5bee30fc7958e1f8fcae83bea /src/libsyntax
parent75a39e0fb8fef20d72f7279686ec266bb9cec127 (diff)
parentec79d368d2f9b56ac1d00825108b4e8b8bd26498 (diff)
downloadrust-b495933a7fdc5e7b28ddbb058d1e2dab330ace7b.tar.gz
rust-b495933a7fdc5e7b28ddbb058d1e2dab330ace7b.zip
auto merge of #16141 : alexcrichton/rust/rollup, r=alexcrichton
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ext/build.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs
index 6c9e113f41a..33daefa3e06 100644
--- a/src/libsyntax/ext/build.rs
+++ b/src/libsyntax/ext/build.rs
@@ -690,6 +690,13 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
 
     fn expr_fail(&self, span: Span, msg: InternedString) -> Gc<ast::Expr> {
         let loc = self.codemap().lookup_char_pos(span.lo);
+        let expr_file = self.expr_str(span,
+                                      token::intern_and_get_ident(loc.file
+                                                                  .name
+                                                                  .as_slice()));
+        let expr_line = self.expr_uint(span, loc.line);
+        let expr_file_line_tuple = self.expr_tuple(span, vec!(expr_file, expr_line));
+        let expr_file_line_ptr = self.expr_addr_of(span, expr_file_line_tuple);
         self.expr_call_global(
             span,
             vec!(
@@ -698,11 +705,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
                 self.ident_of("begin_unwind")),
             vec!(
                 self.expr_str(span, msg),
-                self.expr_str(span,
-                              token::intern_and_get_ident(loc.file
-                                                             .name
-                                                             .as_slice())),
-                self.expr_uint(span, loc.line)))
+                expr_file_line_ptr))
     }
 
     fn expr_unreachable(&self, span: Span) -> Gc<ast::Expr> {