diff options
| author | ljedrz <ljedrz@gmail.com> | 2018-07-10 21:06:26 +0200 |
|---|---|---|
| committer | ljedrz <ljedrz@gmail.com> | 2018-07-10 21:06:26 +0200 |
| commit | e28e4877a828d1f5bda49dbb5bae1b902596f8f6 (patch) | |
| tree | a0b6146b70b44b7b46d563c3fc1634e84642f78b | |
| parent | 77117e383676176116851d7d3ec04b5e0cf0c456 (diff) | |
| download | rust-e28e4877a828d1f5bda49dbb5bae1b902596f8f6.tar.gz rust-e28e4877a828d1f5bda49dbb5bae1b902596f8f6.zip | |
Deny bare trait objects in in src/libsyntax
| -rw-r--r-- | src/libsyntax/codemap.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/diagnostics/metadata.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/diagnostics/plugin.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/ext/base.rs | 50 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/quote.rs | 24 | ||||
| -rw-r--r-- | src/libsyntax/ext/source_util.rs | 18 | ||||
| -rw-r--r-- | src/libsyntax/ext/tt/macro_rules.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/json.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/lib.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/parse/lexer/comments.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/print/pp.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 20 | ||||
| -rw-r--r-- | src/libsyntax/test.rs | 4 |
14 files changed, 75 insertions, 73 deletions
diff --git a/src/libsyntax/codemap.rs b/src/libsyntax/codemap.rs index ea6b39504e8..2e0eb5e9c04 100644 --- a/src/libsyntax/codemap.rs +++ b/src/libsyntax/codemap.rs @@ -131,7 +131,7 @@ pub(super) struct CodeMapFiles { pub struct CodeMap { pub(super) files: Lock<CodeMapFiles>, - file_loader: Box<FileLoader + Sync + Send>, + file_loader: Box<dyn FileLoader + Sync + Send>, // This is used to apply the file path remapping as specified via // --remap-path-prefix to all FileMaps allocated within this CodeMap. path_mapping: FilePathMapping, @@ -162,7 +162,7 @@ impl CodeMap { } - pub fn with_file_loader(file_loader: Box<FileLoader + Sync + Send>, + pub fn with_file_loader(file_loader: Box<dyn FileLoader + Sync + Send>, path_mapping: FilePathMapping) -> CodeMap { CodeMap { diff --git a/src/libsyntax/diagnostics/metadata.rs b/src/libsyntax/diagnostics/metadata.rs index dc01a79190b..61b0579a3e7 100644 --- a/src/libsyntax/diagnostics/metadata.rs +++ b/src/libsyntax/diagnostics/metadata.rs @@ -73,7 +73,7 @@ fn get_metadata_path(directory: PathBuf, name: &str) -> PathBuf { /// For our current purposes the prefix is the target architecture and the name is a crate name. /// If an error occurs steps will be taken to ensure that no file is created. pub fn output_metadata(ecx: &ExtCtxt, prefix: &str, name: &str, err_map: &ErrorMap) - -> Result<(), Box<Error>> + -> Result<(), Box<dyn Error>> { // Create the directory to place the file in. let metadata_dir = get_metadata_dir(prefix); diff --git a/src/libsyntax/diagnostics/plugin.rs b/src/libsyntax/diagnostics/plugin.rs index ca0293aca6e..72ce2740190 100644 --- a/src/libsyntax/diagnostics/plugin.rs +++ b/src/libsyntax/diagnostics/plugin.rs @@ -42,7 +42,7 @@ pub type ErrorMap = BTreeMap<Name, ErrorInfo>; pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt, span: Span, token_tree: &[TokenTree]) - -> Box<MacResult+'cx> { + -> Box<dyn MacResult+'cx> { let code = match (token_tree.len(), token_tree.get(0)) { (1, Some(&TokenTree::Token(_, token::Ident(code, _)))) => code, _ => unreachable!() @@ -75,7 +75,7 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt, pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt, span: Span, token_tree: &[TokenTree]) - -> Box<MacResult+'cx> { + -> Box<dyn MacResult+'cx> { let (code, description) = match ( token_tree.len(), token_tree.get(0), @@ -145,7 +145,7 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt, pub fn expand_build_diagnostic_array<'cx>(ecx: &'cx mut ExtCtxt, span: Span, token_tree: &[TokenTree]) - -> Box<MacResult+'cx> { + -> Box<dyn MacResult+'cx> { assert_eq!(token_tree.len(), 3); let (crate_name, name) = match (&token_tree[0], &token_tree[2]) { ( diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index e2424de4d14..331ab2dc08d 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -153,18 +153,18 @@ pub trait MultiItemDecorator { sp: Span, meta_item: &ast::MetaItem, item: &Annotatable, - push: &mut FnMut(Annotatable)); + push: &mut dyn FnMut(Annotatable)); } impl<F> MultiItemDecorator for F - where F : Fn(&mut ExtCtxt, Span, &ast::MetaItem, &Annotatable, &mut FnMut(Annotatable)) + where F : Fn(&mut ExtCtxt, Span, &ast::MetaItem, &Annotatable, &mut dyn FnMut(Annotatable)) { fn expand(&self, ecx: &mut ExtCtxt, sp: Span, meta_item: &ast::MetaItem, item: &Annotatable, - push: &mut FnMut(Annotatable)) { + push: &mut dyn FnMut(Annotatable)) { (*self)(ecx, sp, meta_item, item, push) } } @@ -247,18 +247,18 @@ impl<F> AttrProcMacro for F /// Represents a thing that maps token trees to Macro Results pub trait TTMacroExpander { fn expand<'cx>(&self, ecx: &'cx mut ExtCtxt, span: Span, input: TokenStream) - -> Box<MacResult+'cx>; + -> Box<dyn MacResult+'cx>; } pub type MacroExpanderFn = for<'cx> fn(&'cx mut ExtCtxt, Span, &[tokenstream::TokenTree]) - -> Box<MacResult+'cx>; + -> Box<dyn MacResult+'cx>; impl<F> TTMacroExpander for F - where F: for<'cx> Fn(&'cx mut ExtCtxt, Span, &[tokenstream::TokenTree]) -> Box<MacResult+'cx> + where F: for<'cx> Fn(&'cx mut ExtCtxt, Span, &[tokenstream::TokenTree]) -> Box<dyn MacResult+'cx> { fn expand<'cx>(&self, ecx: &'cx mut ExtCtxt, span: Span, input: TokenStream) - -> Box<MacResult+'cx> { + -> Box<dyn MacResult+'cx> { struct AvoidInterpolatedIdents; impl Folder for AvoidInterpolatedIdents { @@ -289,23 +289,23 @@ pub trait IdentMacroExpander { sp: Span, ident: ast::Ident, token_tree: Vec<tokenstream::TokenTree>) - -> Box<MacResult+'cx>; + -> Box<dyn MacResult+'cx>; } pub type IdentMacroExpanderFn = for<'cx> fn(&'cx mut ExtCtxt, Span, ast::Ident, Vec<tokenstream::TokenTree>) - -> Box<MacResult+'cx>; + -> Box<dyn MacResult+'cx>; impl<F> IdentMacroExpander for F where F : for<'cx> Fn(&'cx mut ExtCtxt, Span, ast::Ident, - Vec<tokenstream::TokenTree>) -> Box<MacResult+'cx> + Vec<tokenstream::TokenTree>) -> Box<dyn MacResult+'cx> { fn expand<'cx>(&self, cx: &'cx mut ExtCtxt, sp: Span, ident: ast::Ident, token_tree: Vec<tokenstream::TokenTree>) - -> Box<MacResult+'cx> + -> Box<dyn MacResult+'cx> { (*self)(cx, sp, ident, token_tree) } @@ -378,7 +378,7 @@ macro_rules! make_MacEager { impl MacEager { $( - pub fn $fld(v: $t) -> Box<MacResult> { + pub fn $fld(v: $t) -> Box<dyn MacResult> { Box::new(MacEager { $fld: Some(v), ..Default::default() @@ -462,7 +462,7 @@ impl DummyResult { /// /// Use this as a return value after hitting any errors and /// calling `span_err`. - pub fn any(sp: Span) -> Box<MacResult+'static> { + pub fn any(sp: Span) -> Box<dyn MacResult+'static> { Box::new(DummyResult { expr_only: false, span: sp }) } @@ -471,7 +471,7 @@ impl DummyResult { /// Use this for macros that must expand to an expression, so even /// if an error is encountered internally, the user will receive /// an error that they also used it in the wrong place. - pub fn expr(sp: Span) -> Box<MacResult+'static> { + pub fn expr(sp: Span) -> Box<dyn MacResult+'static> { Box::new(DummyResult { expr_only: true, span: sp }) } @@ -559,7 +559,7 @@ impl MacResult for DummyResult { } pub type BuiltinDeriveFn = - for<'cx> fn(&'cx mut ExtCtxt, Span, &MetaItem, &Annotatable, &mut FnMut(Annotatable)); + for<'cx> fn(&'cx mut ExtCtxt, Span, &MetaItem, &Annotatable, &mut dyn FnMut(Annotatable)); /// Represents different kinds of macro invocations that can be resolved. #[derive(Clone, Copy, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)] @@ -590,15 +590,15 @@ pub enum SyntaxExtension { /// `#[derive(...)]` is a `MultiItemDecorator`. /// /// Prefer ProcMacro or MultiModifier since they are more flexible. - MultiDecorator(Box<MultiItemDecorator + sync::Sync + sync::Send>), + MultiDecorator(Box<dyn MultiItemDecorator + sync::Sync + sync::Send>), /// A syntax extension that is attached to an item and modifies it /// in-place. Also allows decoration, i.e., creating new items. - MultiModifier(Box<MultiItemModifier + sync::Sync + sync::Send>), + MultiModifier(Box<dyn MultiItemModifier + sync::Sync + sync::Send>), /// A function-like procedural macro. TokenStream -> TokenStream. ProcMacro { - expander: Box<ProcMacro + sync::Sync + sync::Send>, + expander: Box<dyn ProcMacro + sync::Sync + sync::Send>, allow_internal_unstable: bool, edition: Edition, }, @@ -607,13 +607,13 @@ pub enum SyntaxExtension { /// The first TokenSteam is the attribute, the second is the annotated item. /// Allows modification of the input items and adding new items, similar to /// MultiModifier, but uses TokenStreams, rather than AST nodes. - AttrProcMacro(Box<AttrProcMacro + sync::Sync + sync::Send>, Edition), + AttrProcMacro(Box<dyn AttrProcMacro + sync::Sync + sync::Send>, Edition), /// A normal, function-like syntax extension. /// /// `bytes!` is a `NormalTT`. NormalTT { - expander: Box<TTMacroExpander + sync::Sync + sync::Send>, + expander: Box<dyn TTMacroExpander + sync::Sync + sync::Send>, def_info: Option<(ast::NodeId, Span)>, /// Whether the contents of the macro can /// directly use `#[unstable]` things (true == yes). @@ -633,13 +633,13 @@ pub enum SyntaxExtension { /// A function-like syntax extension that has an extra ident before /// the block. /// - IdentTT(Box<IdentMacroExpander + sync::Sync + sync::Send>, Option<Span>, bool), + IdentTT(Box<dyn IdentMacroExpander + sync::Sync + sync::Send>, Option<Span>, bool), /// An attribute-like procedural macro. TokenStream -> TokenStream. /// The input is the annotated item. /// Allows generating code to implement a Trait for a given struct /// or enum item. - ProcMacroDerive(Box<MultiItemModifier + sync::Sync + sync::Send>, + ProcMacroDerive(Box<dyn MultiItemModifier + sync::Sync + sync::Send>, Vec<Symbol> /* inert attribute names */, Edition), /// An attribute-like procedural macro that derives a builtin trait. @@ -647,7 +647,7 @@ pub enum SyntaxExtension { /// A declarative macro, e.g. `macro m() {}`. DeclMacro { - expander: Box<TTMacroExpander + sync::Sync + sync::Send>, + expander: Box<dyn TTMacroExpander + sync::Sync + sync::Send>, def_info: Option<(ast::NodeId, Span)>, is_transparent: bool, edition: Edition, @@ -784,7 +784,7 @@ pub struct ExtCtxt<'a> { pub parse_sess: &'a parse::ParseSess, pub ecfg: expand::ExpansionConfig<'a>, pub root_path: PathBuf, - pub resolver: &'a mut Resolver, + pub resolver: &'a mut dyn Resolver, pub resolve_err_count: usize, pub current_expansion: ExpansionData, pub expansions: HashMap<Span, Vec<String>>, @@ -793,7 +793,7 @@ pub struct ExtCtxt<'a> { impl<'a> ExtCtxt<'a> { pub fn new(parse_sess: &'a parse::ParseSess, ecfg: expand::ExpansionConfig<'a>, - resolver: &'a mut Resolver) + resolver: &'a mut dyn Resolver) -> ExtCtxt<'a> { ExtCtxt { parse_sess, diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index f29bff20f3d..865cb3d0d45 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -71,7 +71,7 @@ macro_rules! ast_fragments { } } - fn make_from<'a>(self, result: Box<MacResult + 'a>) -> Option<AstFragment> { + fn make_from<'a>(self, result: Box<dyn MacResult + 'a>) -> Option<AstFragment> { match self { AstFragmentKind::OptExpr => result.make_expr().map(Some).map(AstFragment::OptExpr), diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index a6e6ccde72c..1ace4d4a880 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -452,7 +452,7 @@ pub fn parse_path_panic(parser: &mut Parser, mode: PathStyle) -> ast::Path { pub fn expand_quote_tokens<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'cx> { + -> Box<dyn base::MacResult+'cx> { let (cx_expr, expr) = expand_tts(cx, sp, tts); let expanded = expand_wrapper(cx, sp, cx_expr, expr, &[&["syntax", "ext", "quote", "rt"]]); base::MacEager::expr(expanded) @@ -461,7 +461,7 @@ pub fn expand_quote_tokens<'cx>(cx: &'cx mut ExtCtxt, pub fn expand_quote_expr<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'cx> { + -> Box<dyn base::MacResult+'cx> { let expanded = expand_parse_call(cx, sp, "parse_expr_panic", vec![], tts); base::MacEager::expr(expanded) } @@ -469,7 +469,7 @@ pub fn expand_quote_expr<'cx>(cx: &'cx mut ExtCtxt, pub fn expand_quote_item<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'cx> { + -> Box<dyn base::MacResult+'cx> { let expanded = expand_parse_call(cx, sp, "parse_item_panic", vec![], tts); base::MacEager::expr(expanded) } @@ -477,7 +477,7 @@ pub fn expand_quote_item<'cx>(cx: &'cx mut ExtCtxt, pub fn expand_quote_pat<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'cx> { + -> Box<dyn base::MacResult+'cx> { let expanded = expand_parse_call(cx, sp, "parse_pat_panic", vec![], tts); base::MacEager::expr(expanded) } @@ -485,7 +485,7 @@ pub fn expand_quote_pat<'cx>(cx: &'cx mut ExtCtxt, pub fn expand_quote_arm(cx: &mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let expanded = expand_parse_call(cx, sp, "parse_arm_panic", vec![], tts); base::MacEager::expr(expanded) } @@ -493,7 +493,7 @@ pub fn expand_quote_arm(cx: &mut ExtCtxt, pub fn expand_quote_ty(cx: &mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let expanded = expand_parse_call(cx, sp, "parse_ty_panic", vec![], tts); base::MacEager::expr(expanded) } @@ -501,7 +501,7 @@ pub fn expand_quote_ty(cx: &mut ExtCtxt, pub fn expand_quote_stmt(cx: &mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let expanded = expand_parse_call(cx, sp, "parse_stmt_panic", vec![], tts); base::MacEager::expr(expanded) } @@ -509,7 +509,7 @@ pub fn expand_quote_stmt(cx: &mut ExtCtxt, pub fn expand_quote_attr(cx: &mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let expanded = expand_parse_call(cx, sp, "parse_attribute_panic", vec![cx.expr_bool(sp, true)], tts); @@ -519,7 +519,7 @@ pub fn expand_quote_attr(cx: &mut ExtCtxt, pub fn expand_quote_arg(cx: &mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let expanded = expand_parse_call(cx, sp, "parse_arg_panic", vec![], tts); base::MacEager::expr(expanded) } @@ -527,7 +527,7 @@ pub fn expand_quote_arg(cx: &mut ExtCtxt, pub fn expand_quote_block(cx: &mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let expanded = expand_parse_call(cx, sp, "parse_block_panic", vec![], tts); base::MacEager::expr(expanded) } @@ -535,7 +535,7 @@ pub fn expand_quote_block(cx: &mut ExtCtxt, pub fn expand_quote_meta_item(cx: &mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let expanded = expand_parse_call(cx, sp, "parse_meta_item_panic", vec![], tts); base::MacEager::expr(expanded) } @@ -543,7 +543,7 @@ pub fn expand_quote_meta_item(cx: &mut ExtCtxt, pub fn expand_quote_path(cx: &mut ExtCtxt, sp: Span, tts: &[TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let mode = mk_parser_path(cx, sp, &["PathStyle", "Type"]); let expanded = expand_parse_call(cx, sp, "parse_path_panic", vec![mode], tts); base::MacEager::expr(expanded) diff --git a/src/libsyntax/ext/source_util.rs b/src/libsyntax/ext/source_util.rs index 669536f519c..0c36c072a03 100644 --- a/src/libsyntax/ext/source_util.rs +++ b/src/libsyntax/ext/source_util.rs @@ -32,7 +32,7 @@ use rustc_data_structures::sync::Lrc; /// line!(): expands to the current line number pub fn expand_line(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { base::check_zero_tts(cx, sp, tts, "line!"); let topmost = cx.expansion_cause().unwrap_or(sp); @@ -43,7 +43,7 @@ pub fn expand_line(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) /* column!(): expands to the current column number */ pub fn expand_column(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { base::check_zero_tts(cx, sp, tts, "column!"); let topmost = cx.expansion_cause().unwrap_or(sp); @@ -54,7 +54,7 @@ pub fn expand_column(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) /* __rust_unstable_column!(): expands to the current column number */ pub fn expand_column_gated(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { if sp.allows_unstable() { expand_column(cx, sp, tts) } else { @@ -66,7 +66,7 @@ pub fn expand_column_gated(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::Token /// The filemap (`loc.file`) contains a bunch more information we could spit /// out if we wanted. pub fn expand_file(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { base::check_zero_tts(cx, sp, tts, "file!"); let topmost = cx.expansion_cause().unwrap_or(sp); @@ -75,13 +75,13 @@ pub fn expand_file(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) } pub fn expand_stringify(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let s = pprust::tts_to_string(tts); base::MacEager::expr(cx.expr_str(sp, Symbol::intern(&s))) } pub fn expand_mod(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { base::check_zero_tts(cx, sp, tts, "module_path!"); let mod_path = &cx.current_expansion.module.mod_path; let string = mod_path.iter().map(|x| x.to_string()).collect::<Vec<String>>().join("::"); @@ -93,7 +93,7 @@ pub fn expand_mod(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) /// This is generally a bad idea because it's going to behave /// unhygienically. pub fn expand_include<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) - -> Box<base::MacResult+'cx> { + -> Box<dyn base::MacResult+'cx> { let file = match get_single_str_from_tts(cx, sp, tts, "include!") { Some(f) => f, None => return DummyResult::expr(sp), @@ -131,7 +131,7 @@ pub fn expand_include<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[tokenstream::T // include_str! : read the given file, insert it as a literal string expr pub fn expand_include_str(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let file = match get_single_str_from_tts(cx, sp, tts, "include_str!") { Some(f) => f, None => return DummyResult::expr(sp) @@ -168,7 +168,7 @@ pub fn expand_include_str(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenT } pub fn expand_include_bytes(cx: &mut ExtCtxt, sp: Span, tts: &[tokenstream::TokenTree]) - -> Box<base::MacResult+'static> { + -> Box<dyn base::MacResult+'static> { let file = match get_single_str_from_tts(cx, sp, tts, "include_bytes!") { Some(f) => f, None => return DummyResult::expr(sp) diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index 70fc9dada42..9ebead1062e 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -73,7 +73,7 @@ impl TTMacroExpander for MacroRulesMacroExpander { cx: &'cx mut ExtCtxt, sp: Span, input: TokenStream) - -> Box<MacResult+'cx> { + -> Box<dyn MacResult+'cx> { if !self.valid { return DummyResult::any(sp); } @@ -99,7 +99,7 @@ fn generic_extension<'cx>(cx: &'cx mut ExtCtxt, arg: TokenStream, lhses: &[quoted::TokenTree], rhses: &[quoted::TokenTree]) - -> Box<MacResult+'cx> { + -> Box<dyn MacResult+'cx> { if cx.trace_macros() { trace_macros_note(cx, sp, format!("expanding `{}! {{ {} }}`", name, arg)); } diff --git a/src/libsyntax/json.rs b/src/libsyntax/json.rs index f129aea32b8..65de1503966 100644 --- a/src/libsyntax/json.rs +++ b/src/libsyntax/json.rs @@ -34,9 +34,9 @@ use std::sync::{Arc, Mutex}; use rustc_serialize::json::{as_json, as_pretty_json}; pub struct JsonEmitter { - dst: Box<Write + Send>, + dst: Box<dyn Write + Send>, registry: Option<Registry>, - cm: Lrc<CodeMapper + sync::Send + sync::Sync>, + cm: Lrc<dyn CodeMapper + sync::Send + sync::Sync>, pretty: bool, ui_testing: bool, } @@ -60,7 +60,7 @@ impl JsonEmitter { pretty) } - pub fn new(dst: Box<Write + Send>, + pub fn new(dst: Box<dyn Write + Send>, registry: Option<Registry>, code_map: Lrc<CodeMap>, pretty: bool) -> JsonEmitter { diff --git a/src/libsyntax/lib.rs b/src/libsyntax/lib.rs index 1ace9193dc6..ffaad9bf94c 100644 --- a/src/libsyntax/lib.rs +++ b/src/libsyntax/lib.rs @@ -14,6 +14,8 @@ //! //! This API is completely unstable and subject to change. +#![deny(bare_trait_objects)] + #