Skip to content

Commit e28e487

Browse files
committed
Deny bare trait objects in in src/libsyntax
1 parent 77117e3 commit e28e487

File tree

14 files changed

+75
-73
lines changed

14 files changed

+75
-73
lines changed

src/libsyntax/codemap.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ pub(super) struct CodeMapFiles {
131131

132132
pub struct CodeMap {
133133
pub(super) files: Lock<CodeMapFiles>,
134-
file_loader: Box<FileLoader + Sync + Send>,
134+
file_loader: Box<dyn FileLoader + Sync + Send>,
135135
// This is used to apply the file path remapping as specified via
136136
// --remap-path-prefix to all FileMaps allocated within this CodeMap.
137137
path_mapping: FilePathMapping,
@@ -162,7 +162,7 @@ impl CodeMap {
162162

163163
}
164164

165-
pub fn with_file_loader(file_loader: Box<FileLoader + Sync + Send>,
165+
pub fn with_file_loader(file_loader: Box<dyn FileLoader + Sync + Send>,
166166
path_mapping: FilePathMapping)
167167
-> CodeMap {
168168
CodeMap {

src/libsyntax/diagnostics/metadata.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ fn get_metadata_path(directory: PathBuf, name: &str) -> PathBuf {
7373
/// For our current purposes the prefix is the target architecture and the name is a crate name.
7474
/// If an error occurs steps will be taken to ensure that no file is created.
7575
pub fn output_metadata(ecx: &ExtCtxt, prefix: &str, name: &str, err_map: &ErrorMap)
76-
-> Result<(), Box<Error>>
76+
-> Result<(), Box<dyn Error>>
7777
{
7878
// Create the directory to place the file in.
7979
let metadata_dir = get_metadata_dir(prefix);

src/libsyntax/diagnostics/plugin.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pub type ErrorMap = BTreeMap<Name, ErrorInfo>;
4242
pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt,
4343
span: Span,
4444
token_tree: &[TokenTree])
45-
-> Box<MacResult+'cx> {
45+
-> Box<dyn MacResult+'cx> {
4646
let code = match (token_tree.len(), token_tree.get(0)) {
4747
(1, Some(&TokenTree::Token(_, token::Ident(code, _)))) => code,
4848
_ => unreachable!()
@@ -75,7 +75,7 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt,
7575
pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt,
7676
span: Span,
7777
token_tree: &[TokenTree])
78-
-> Box<MacResult+'cx> {
78+
-> Box<dyn MacResult+'cx> {
7979
let (code, description) = match (
8080
token_tree.len(),
8181
token_tree.get(0),
@@ -145,7 +145,7 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt,
145145
pub fn expand_build_diagnostic_array<'cx>(ecx: &'cx mut ExtCtxt,
146146
span: Span,
147147
token_tree: &[TokenTree])
148-
-> Box<MacResult+'cx> {
148+
-> Box<dyn MacResult+'cx> {
149149
assert_eq!(token_tree.len(), 3);
150150
let (crate_name, name) = match (&token_tree[0], &token_tree[2]) {
151151
(

src/libsyntax/ext/base.rs

+25-25
Original file line numberDiff line numberDiff line change
@@ -153,18 +153,18 @@ pub trait MultiItemDecorator {
153153
sp: Span,
154154
meta_item: &ast::MetaItem,
155155
item: &Annotatable,
156-
push: &mut FnMut(Annotatable));
156+
push: &mut dyn FnMut(Annotatable));
157157
}
158158

159159
impl<F> MultiItemDecorator for F
160-
where F : Fn(&mut ExtCtxt, Span, &ast::MetaItem, &Annotatable, &mut FnMut(Annotatable))
160+
where F : Fn(&mut ExtCtxt, Span, &ast::MetaItem, &Annotatable, &mut dyn FnMut(Annotatable))
161161
{
162162
fn expand(&self,
163163
ecx: &mut ExtCtxt,
164164
sp: Span,
165165
meta_item: &ast::MetaItem,
166166
item: &Annotatable,
167-
push: &mut FnMut(Annotatable)) {
167+
push: &mut dyn FnMut(Annotatable)) {
168168
(*self)(ecx, sp, meta_item, item, push)
169169
}
170170
}
@@ -247,18 +247,18 @@ impl<F> AttrProcMacro for F
247247
/// Represents a thing that maps token trees to Macro Results
248248
pub trait TTMacroExpander {
249249
fn expand<'cx>(&self, ecx: &'cx mut ExtCtxt, span: Span, input: TokenStream)
250-
-> Box<MacResult+'cx>;
250+
-> Box<dyn MacResult+'cx>;
251251
}
252252

253253
pub type MacroExpanderFn =
254254
for<'cx> fn(&'cx mut ExtCtxt, Span, &[tokenstream::TokenTree])
255-
-> Box<MacResult+'cx>;
255+
-> Box<dyn MacResult+'cx>;
256256

257257
impl<F> TTMacroExpander for F
258-
where F: for<'cx> Fn(&'cx mut ExtCtxt, Span, &[tokenstream::TokenTree]) -> Box<MacResult+'cx>
258+
where F: for<'cx> Fn(&'cx mut ExtCtxt, Span, &[tokenstream::TokenTree]) -> Box<dyn MacResult+'cx>
259259
{
260260
fn expand<'cx>(&self, ecx: &'cx mut ExtCtxt, span: Span, input: TokenStream)
261-
-> Box<MacResult+'cx> {
261+
-> Box<dyn MacResult+'cx> {
262262
struct AvoidInterpolatedIdents;
263263

264264
impl Folder for AvoidInterpolatedIdents {
@@ -289,23 +289,23 @@ pub trait IdentMacroExpander {
289289
sp: Span,
290290
ident: ast::Ident,
291291
token_tree: Vec<tokenstream::TokenTree>)
292-
-> Box<MacResult+'cx>;
292+
-> Box<dyn MacResult+'cx>;
293293
}
294294

295295
pub type IdentMacroExpanderFn =
296296
for<'cx> fn(&'cx mut ExtCtxt, Span, ast::Ident, Vec<tokenstream::TokenTree>)
297-
-> Box<MacResult+'cx>;
297+
-> Box<dyn MacResult+'cx>;
298298

299299
impl<F> IdentMacroExpander for F
300300
where F : for<'cx> Fn(&'cx mut ExtCtxt, Span, ast::Ident,
301-
Vec<tokenstream::TokenTree>) -> Box<MacResult+'cx>
301+
Vec<tokenstream::TokenTree>) -> Box<dyn MacResult+'cx>
302302
{
303303
fn expand<'cx>(&self,
304304
cx: &'cx mut ExtCtxt,
305305
sp: Span,
306306
ident: ast::Ident,
307307
token_tree: Vec<tokenstream::TokenTree>)
308-
-> Box<MacResult+'cx>
308+
-> Box<dyn MacResult+'cx>
309309
{
310310
(*self)(cx, sp, ident, token_tree)
311311
}
@@ -378,7 +378,7 @@ macro_rules! make_MacEager {
378378

379379
impl MacEager {
380380
$(
381-
pub fn $fld(v: $t) -> Box<MacResult> {
381+
pub fn $fld(v: $t) -> Box<dyn MacResult> {
382382
Box::new(MacEager {
383383
$fld: Some(v),
384384
..Default::default()
@@ -462,7 +462,7 @@ impl DummyResult {
462462
///
463463
/// Use this as a return value after hitting any errors and
464464
/// calling `span_err`.
465-
pub fn any(sp: Span) -> Box<MacResult+'static> {
465+
pub fn any(sp: Span) -> Box<dyn MacResult+'static> {
466466
Box::new(DummyResult { expr_only: false, span: sp })
467467
}
468468

@@ -471,7 +471,7 @@ impl DummyResult {
471471
/// Use this for macros that must expand to an expression, so even
472472
/// if an error is encountered internally, the user will receive
473473
/// an error that they also used it in the wrong place.
474-
pub fn expr(sp: Span) -> Box<MacResult+'static> {
474+
pub fn expr(sp: Span) -> Box<dyn MacResult+'static> {
475475
Box::new(DummyResult { expr_only: true, span: sp })
476476
}
477477

@@ -559,7 +559,7 @@ impl MacResult for DummyResult {
559559
}
560560

561561
pub type BuiltinDeriveFn =
562-
for<'cx> fn(&'cx mut ExtCtxt, Span, &MetaItem, &Annotatable, &mut FnMut(Annotatable));
562+
for<'cx> fn(&'cx mut ExtCtxt, Span, &MetaItem, &Annotatable, &mut dyn FnMut(Annotatable));
563563

564564
/// Represents different kinds of macro invocations that can be resolved.
565565
#[derive(Clone, Copy, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)]
@@ -590,15 +590,15 @@ pub enum SyntaxExtension {
590590
/// `#[derive(...)]` is a `MultiItemDecorator`.
591591
///
592592
/// Prefer ProcMacro or MultiModifier since they are more flexible.
593-
MultiDecorator(Box<MultiItemDecorator + sync::Sync + sync::Send>),
593+
MultiDecorator(Box<dyn MultiItemDecorator + sync::Sync + sync::Send>),
594594

595595
/// A syntax extension that is attached to an item and modifies it
596596
/// in-place. Also allows decoration, i.e., creating new items.
597-
MultiModifier(Box<MultiItemModifier + sync::Sync + sync::Send>),
597+
MultiModifier(Box<dyn MultiItemModifier + sync::Sync + sync::Send>),
598598

599599
/// A function-like procedural macro. TokenStream -> TokenStream.
600600
ProcMacro {
601-
expander: Box<ProcMacro + sync::Sync + sync::Send>,
601+
expander: Box<dyn ProcMacro + sync::Sync + sync::Send>,
602602
allow_internal_unstable: bool,
603603
edition: Edition,
604604
},
@@ -607,13 +607,13 @@ pub enum SyntaxExtension {
607607
/// The first TokenSteam is the attribute, the second is the annotated item.
608608
/// Allows modification of the input items and adding new items, similar to
609609
/// MultiModifier, but uses TokenStreams, rather than AST nodes.
610-
AttrProcMacro(Box<AttrProcMacro + sync::Sync + sync::Send>, Edition),
610+
AttrProcMacro(Box<dyn AttrProcMacro + sync::Sync + sync::Send>, Edition),
611611

612612
/// A normal, function-like syntax extension.
613613
///
614614
/// `bytes!` is a `NormalTT`.
615615
NormalTT {
616-
expander: Box<TTMacroExpander + sync::Sync + sync::Send>,
616+
expander: Box<dyn TTMacroExpander + sync::Sync + sync::Send>,
617617
def_info: Option<(ast::NodeId, Span)>,
618618
/// Whether the contents of the macro can
619619
/// directly use `#[unstable]` things (true == yes).
@@ -633,21 +633,21 @@ pub enum SyntaxExtension {
633633
/// A function-like syntax extension that has an extra ident before
634634
/// the block.
635635
///
636-
IdentTT(Box<IdentMacroExpander + sync::Sync + sync::Send>, Option<Span>, bool),
636+
IdentTT(Box<dyn IdentMacroExpander + sync::Sync + sync::Send>, Option<Span>, bool),
637637

638638
/// An attribute-like procedural macro. TokenStream -> TokenStream.
639639
/// The input is the annotated item.
640640
/// Allows generating code to implement a Trait for a given struct
641641
/// or enum item.
642-
ProcMacroDerive(Box<MultiItemModifier + sync::Sync + sync::Send>,
642+
ProcMacroDerive(Box<dyn MultiItemModifier + sync::Sync + sync::Send>,
643643
Vec<Symbol> /* inert attribute names */, Edition),
644644

645645
/// An attribute-like procedural macro that derives a builtin trait.
646646
BuiltinDerive(BuiltinDeriveFn),
647647

648648
/// A declarative macro, e.g. `macro m() {}`.
649649
DeclMacro {
650-
expander: Box<TTMacroExpander + sync::Sync + sync::Send>,
650+
expander: Box<dyn TTMacroExpander + sync::Sync + sync::Send>,
651651
def_info: Option<(ast::NodeId, Span)>,
652652
is_transparent: bool,
653653
edition: Edition,
@@ -784,7 +784,7 @@ pub struct ExtCtxt<'a> {
784784
pub parse_sess: &'a parse::ParseSess,
785785
pub ecfg: expand::ExpansionConfig<'a>,
786786
pub root_path: PathBuf,
787-
pub resolver: &'a mut Resolver,
787+
pub resolver: &'a mut dyn Resolver,
788788
pub resolve_err_count: usize,
789789
pub current_expansion: ExpansionData,
790790
pub expansions: HashMap<Span, Vec<String>>,
@@ -793,7 +793,7 @@ pub struct ExtCtxt<'a> {
793793
impl<'a> ExtCtxt<'a> {
794794
pub fn new(parse_sess: &'a parse::ParseSess,
795795
ecfg: expand::ExpansionConfig<'a>,
796-
resolver: &'a mut Resolver)
796+
resolver: &'a mut dyn Resolver)
797797
-> ExtCtxt<'a> {
798798
ExtCtxt {
799799
parse_sess,

src/libsyntax/ext/expand.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ macro_rules! ast_fragments {
7171
}
7272
}
7373

74-
fn make_from<'a>(self, result: Box<MacResult + 'a>) -> Option<AstFragment> {
74+
fn make_from<'a>(self, result: Box<dyn MacResult + 'a>) -> Option<AstFragment> {
7575
match self {
7676
AstFragmentKind::OptExpr =>
7777
result.make_expr().map(Some).map(AstFragment::OptExpr),

src/libsyntax/ext/quote.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ pub fn parse_path_panic(parser: &mut Parser, mode: PathStyle) -> ast::Path {
452452
pub fn expand_quote_tokens<'cx>(cx: &'cx mut ExtCtxt,
453453
sp: Span,
454454
tts: &[TokenTree])
455-
-> Box<base::MacResult+'cx> {
455+
-> Box<dyn base::MacResult+'cx> {
456456
let (cx_expr, expr) = expand_tts(cx, sp, tts);
457457
let expanded = expand_wrapper(cx, sp, cx_expr, expr, &[&["syntax", "ext", "quote", "rt"]]);
458458
base::MacEager::expr(expanded)
@@ -461,55 +461,55 @@ pub fn expand_quote_tokens<'cx>(cx: &'cx mut ExtCtxt,
461461
pub fn expand_quote_expr<'cx>(cx: &'cx mut ExtCtxt,
462462
sp: Span,
463463
tts: &[TokenTree])
464-
-> Box<base::MacResult+'cx> {
464+
-> Box<dyn base::MacResult+'cx> {
465465
let expanded = expand_parse_call(cx, sp, "parse_expr_panic", vec![], tts);
466466
base::MacEager::expr(expanded)
467467
}
468468

469469
pub fn expand_quote_item<'cx>(cx: &'cx mut ExtCtxt,
470470
sp: Span,
471471
tts: &[TokenTree])
472-
-> Box<base::MacResult+'cx> {
472+
-> Box<dyn base::MacResult+'cx> {
473473
let expanded = expand_parse_call(cx, sp, "parse_item_panic", vec![], tts);
474474
base::MacEager::expr(expanded)
475475
}
476476

477477
pub fn expand_quote_pat<'cx>(cx: &'cx mut ExtCtxt,
478478
sp: Span,
479479
tts: &[TokenTree])
480-
-> Box<base::MacResult+'cx> {
480+
-> Box<dyn base::MacResult+'cx> {
481481
let expanded = expand_parse_call(cx, sp, "parse_pat_panic", vec![], tts);
482482
base::MacEager::expr(expanded)
483483
}
484484

485485
pub fn expand_quote_arm(cx: &mut ExtCtxt,
486486
sp: Span,
487487
tts: &[TokenTree])
488-
-> Box<base::MacResult+'static> {
488+
-> Box<dyn base::MacResult+'static> {
489489
let expanded = expand_parse_call(cx, sp, "parse_arm_panic", vec![], tts);
490490
base::MacEager::expr(expanded)
491491
}
492492

493493
pub fn expand_quote_ty(cx: &mut ExtCtxt,
494494
sp: Span,
495495
tts: &[TokenTree])
496-
-> Box<base::MacResult+'static> {
496+
-> Box<dyn base::MacResult+'static> {
497497
let expanded = expand_parse_call(cx, sp, "parse_ty_panic", vec![], tts);
498498
base::MacEager::expr(expanded)
499499
}
500500

501501
pub fn expand_quote_stmt(cx: &mut ExtCtxt,
502502
sp: Span,
503503
tts: &[TokenTree])
504-
-> Box<base::MacResult+'static> {
504+
-> Box<dyn base::MacResult+'static> {
505505
let expanded = expand_parse_call(cx, sp, "parse_stmt_panic", vec![], tts);
506506
base::MacEager::expr(expanded)
507507
}
508508

509509
pub fn expand_quote_attr(cx: &mut ExtCtxt,
510510
sp: Span,
511511
tts: &[TokenTree])
512-
-> Box<base::MacResult+'static> {
512+
-> Box<dyn base::MacResult+'static> {
513513
let expanded = expand_parse_call(cx, sp, "parse_attribute_panic",
514514
vec![cx.expr_bool(sp, true)], tts);
515515

@@ -519,31 +519,31 @@ pub fn expand_quote_attr(cx: &mut ExtCtxt,
519519
pub fn expand_quote_arg(cx: &mut ExtCtxt,
520520
sp: Span,
521521
tts: &[TokenTree])
522-
-> Box<base::MacResult+'static> {
522+
-> Box<dyn base::MacResult+'static> {
523523
let expanded = expand_parse_call(cx, sp, "parse_arg_panic", vec![], tts);
524524
base::MacEager::expr(expanded)
525525
}
526526

527527
pub fn expand_quote_block(cx: &mut ExtCtxt,
528528
sp: Span,
529529
tts: &[TokenTree])
530-
-> Box<base::MacResult+'static> {
530+
-> Box<dyn base::MacResult+'static> {
531531
let expanded = expand_parse_call(cx, sp, "parse_block_panic", vec![], tts);
532532
base::MacEager::expr(expanded)
533533
}
534534

535535
pub fn expand_quote_meta_item(cx: &mut ExtCtxt,
536536
sp: Span,
537537
tts: &[TokenTree])
538-
-> Box<base::MacResult+'static> {
538+
-> Box<dyn base::MacResult+'static> {
539539
let expanded = expand_parse_call(cx, sp, "parse_meta_item_panic", vec![], tts);
540540
base::MacEager::expr(expanded)
541541
}
542542

543543
pub fn expand_quote_path(cx: &mut ExtCtxt,
544544
sp: Span,
545545
tts: &[TokenTree])
546-
-> Box<base::MacResult+'static> {
546+
-> Box<dyn base::MacResult+'static> {
547547
let mode = mk_parser_path(cx, sp, &["PathStyle", "Type"]);
548548
let expanded = expand_parse_call(cx, sp, "parse_path_panic", vec![mode], tts);
549549
base::MacEager::expr(expanded)

0 commit comments

Comments
 (0)