From 9b9cce2316119a2ffdc9556d410e464b7542d64d Mon Sep 17 00:00:00 2001 From: Jakub Wieczorek Date: Tue, 1 Jul 2014 18:39:41 +0200 Subject: Add scaffolding for assigning alpha-numeric codes to rustc diagnostics --- src/libsyntax/diagnostics/macros.rs | 51 +++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/libsyntax/diagnostics/macros.rs (limited to 'src/libsyntax/diagnostics/macros.rs') diff --git a/src/libsyntax/diagnostics/macros.rs b/src/libsyntax/diagnostics/macros.rs new file mode 100644 index 00000000000..b0260e1180f --- /dev/null +++ b/src/libsyntax/diagnostics/macros.rs @@ -0,0 +1,51 @@ +// Copyright 2014 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![macro_escape] + +// NOTE: remove after next snapshot +#[cfg(stage0)] +#[macro_export] +macro_rules! __register_diagnostic( + ($code:tt, $description:tt) => (); + ($code:tt) => () +) + +#[macro_export] +macro_rules! register_diagnostic( + ($code:tt, $description:tt) => (__register_diagnostic!($code, $description)); + ($code:tt) => (__register_diagnostic!($code)) +) + +// NOTE: remove after next snapshot +#[cfg(stage0)] +#[macro_export] +macro_rules! __build_diagnostic_array( + ($name:ident) => { + pub static $name: [(&'static str, &'static str), ..0] = []; + } +) + +// NOTE: remove after next snapshot +#[cfg(stage0)] +#[macro_export] +macro_rules! __diagnostic_used( + ($code:ident) => { + () + } +) + +#[macro_export] +macro_rules! span_err( + ($session:expr, $span:expr, $code:ident, $($arg:expr),*) => ({ + __diagnostic_used!($code); + ($session).span_err_with_code($span, format!($($arg),*).as_slice(), stringify!($code)) + }) +) -- cgit 1.4.1-3-g733a5