Skip to content

Commit 852db8b

Browse files
arielb1Ariel Ben-Yehuda
authored and
Ariel Ben-Yehuda
committed
move librustc/plugin to librustc_plugin
this is a [breaking-change] to all plugin authors - sorry
1 parent 69dd31c commit 852db8b

30 files changed

+100
-39
lines changed

mk/crates.mk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ TARGET_CRATES := libc std flate arena term \
5656
alloc_system
5757
RUSTC_CRATES := rustc rustc_typeck rustc_mir rustc_borrowck rustc_resolve rustc_driver \
5858
rustc_trans rustc_back rustc_llvm rustc_privacy rustc_lint \
59-
rustc_data_structures rustc_front rustc_platform_intrinsics
59+
rustc_data_structures rustc_front rustc_platform_intrinsics \
60+
rustc_plugin
6061
HOST_CRATES := syntax $(RUSTC_CRATES) rustdoc fmt_macros
6162
TOOLS := compiletest rustdoc rustc rustbook error-index-generator
6263

@@ -94,14 +95,15 @@ DEPS_rustc_borrowck := rustc rustc_front log graphviz syntax
9495
DEPS_rustc_data_structures := std log serialize
9596
DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_borrowck \
9697
rustc_typeck rustc_mir rustc_resolve log syntax serialize rustc_llvm \
97-
rustc_trans rustc_privacy rustc_lint rustc_front
98+
rustc_trans rustc_privacy rustc_lint rustc_front rustc_plugin
9899

99100
DEPS_rustc_front := std syntax log serialize
100101
DEPS_rustc_lint := rustc log syntax
101102
DEPS_rustc_llvm := native:rustllvm libc std rustc_bitflags
102103
DEPS_rustc_mir := rustc rustc_front syntax
103104
DEPS_rustc_resolve := rustc rustc_front log syntax
104105
DEPS_rustc_platform_intrinsics := rustc rustc_llvm
106+
DEPS_rustc_plugin := rustc syntax
105107
DEPS_rustc_privacy := rustc rustc_front log syntax
106108
DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back rustc_mir \
107109
log syntax serialize rustc_llvm rustc_front rustc_platform_intrinsics

src/doc/book/compiler-plugins.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ extend the compiler's behavior with new syntax extensions, lint checks, etc.
88
A plugin is a dynamic library crate with a designated *registrar* function that
99
registers extensions with `rustc`. Other crates can load these extensions using
1010
the crate attribute `#![plugin(...)]`. See the
11-
[`rustc::plugin`](../rustc/plugin/index.html) documentation for more about the
11+
[`rustc_plugin`](../rustc_plugin/index.html) documentation for more about the
1212
mechanics of defining and loading a plugin.
1313

1414
If present, arguments passed as `#![plugin(foo(... args ...))]` are not
1515
interpreted by rustc itself. They are provided to the plugin through the
16-
`Registry`'s [`args` method](../rustc/plugin/registry/struct.Registry.html#method.args).
16+
`Registry`'s [`args` method](../rustc_plugin/registry/struct.Registry.html#method.args).
1717

1818
In the vast majority of cases, a plugin should *only* be used through
1919
`#![plugin]` and not through an `extern crate` item. Linking a plugin would
@@ -43,13 +43,14 @@ that implements Roman numeral integer literals.
4343
4444
extern crate syntax;
4545
extern crate rustc;
46+
extern crate rustc_plugin;
4647
4748
use syntax::codemap::Span;
4849
use syntax::parse::token;
4950
use syntax::ast::TokenTree;
5051
use syntax::ext::base::{ExtCtxt, MacResult, DummyResult, MacEager};
5152
use syntax::ext::build::AstBuilder; // trait for expr_usize
52-
use rustc::plugin::Registry;
53+
use rustc_plugin::Registry;
5354
5455
fn expand_rn(cx: &mut ExtCtxt, sp: Span, args: &[TokenTree])
5556
-> Box<MacResult + 'static> {
@@ -120,7 +121,7 @@ The advantages over a simple `fn(&str) -> u32` are:
120121
In addition to procedural macros, you can define new
121122
[`derive`](../reference.html#derive)-like attributes and other kinds of
122123
extensions. See
123-
[`Registry::register_syntax_extension`](../rustc/plugin/registry/struct.Registry.html#method.register_syntax_extension)
124+
[`Registry::register_syntax_extension`](../rustc_plugin/registry/struct.Registry.html#method.register_syntax_extension)
124125
and the [`SyntaxExtension`
125126
enum](https://doc.rust-lang.org/syntax/ext/base/enum.SyntaxExtension.html). For
126127
a more involved macro example, see
@@ -189,10 +190,11 @@ extern crate syntax;
189190
// Load rustc as a plugin to get macros
190191
#[macro_use]
191192
extern crate rustc;
193+
extern crate rustc_plugin;
192194
193195
use rustc::lint::{EarlyContext, LintContext, LintPass, EarlyLintPass,
194196
EarlyLintPassObject, LintArray};
195-
use rustc::plugin::Registry;
197+
use rustc_plugin::Registry;
196198
use syntax::ast;
197199
198200
declare_lint!(TEST_LINT, Warn, "Warn about items named 'lintme'");

src/librustc/diagnostics.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2181,6 +2181,5 @@ register_diagnostics! {
21812181
E0491, // in type `..`, reference has a longer lifetime than the data it...
21822182
E0492, // cannot borrow a constant which contains interior mutability
21832183
E0495, // cannot infer an appropriate lifetime due to conflicting requirements
2184-
E0498, // malformed plugin attribute
21852184
E0514, // metadata version mismatch
21862185
}

src/librustc/lib.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
#![feature(const_fn)]
3434
#![feature(core)]
3535
#![feature(duration_span)]
36-
#![feature(dynamic_lib)]
3736
#![feature(enumset)]
3837
#![feature(hashmap_hasher)]
3938
#![feature(into_cow)]
@@ -100,8 +99,8 @@ pub mod front {
10099
}
101100

102101
pub mod middle {
103-
pub mod expr_use_visitor; // STAGE0: increase glitch immunity
104102
pub mod astconv_util;
103+
pub mod expr_use_visitor; // STAGE0: increase glitch immunity
105104
pub mod astencode;
106105
pub mod cfg;
107106
pub mod check_const;
@@ -142,8 +141,6 @@ pub mod metadata;
142141

143142
pub mod session;
144143

145-
pub mod plugin;
146-
147144
pub mod lint;
148145

149146
pub mod util {

src/librustc_driver/driver.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ use rustc::metadata::cstore::CStore;
2222
use rustc::middle::{stability, ty, reachable};
2323
use rustc::middle::dependency_format;
2424
use rustc::middle;
25-
use rustc::plugin::registry::Registry;
26-
use rustc::plugin;
2725
use rustc::util::nodemap::NodeMap;
2826
use rustc::util::common::time;
2927
use rustc_borrowck as borrowck;
@@ -33,6 +31,8 @@ use rustc_trans::back::write;
3331
use rustc_trans::trans;
3432
use rustc_typeck as typeck;
3533
use rustc_privacy;
34+
use rustc_plugin::registry::Registry;
35+
use rustc_plugin as plugin;
3636
use rustc_front::hir;
3737
use rustc_front::lowering::{lower_crate, LoweringContext};
3838
use super::Compilation;

src/librustc_driver/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ extern crate rustc_back;
4545
extern crate rustc_borrowck;
4646
extern crate rustc_front;
4747
extern crate rustc_lint;
48+
extern crate rustc_plugin;
4849
extern crate rustc_privacy;
4950
extern crate rustc_mir;
5051
extern crate rustc_resolve;

src/librustc_lint/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
//! This currently only contains the definitions and implementations
1414
//! of most of the lints that `rustc` supports directly, it does not
1515
//! contain the infrastructure for defining/registering lints. That is
16-
//! available in `rustc::lint` and `rustc::plugin` respectively.
16+
//! available in `rustc::lint` and `rustc_plugin` respectively.
1717
//!
1818
//! # Note
1919
//!
File renamed without changes.

src/librustc_plugin/diagnostics.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![allow(non_snake_case)]
12+
13+
register_long_diagnostics! {
14+
15+
}
16+
17+
register_diagnostics! {
18+
E0498 // malformed plugin attribute
19+
}

src/librustc/plugin/mod.rs renamed to src/librustc_plugin/lib.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,31 @@
5050
//! See the [Plugins Chapter](../../book/compiler-plugins.html) of the book
5151
//! for more examples.
5252
53+
#![cfg_attr(stage0, feature(custom_attribute))]
54+
#![crate_name = "rustc_plugin"]
55+
#![unstable(feature = "rustc_private", issue = "27812")]
56+
#![staged_api]
57+
#![crate_type = "dylib"]
58+
#![crate_type = "rlib"]
59+
#![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
60+
html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
61+
html_root_url = "https://doc.rust-lang.org/nightly/")]
62+
63+
#![feature(dynamic_lib)]
64+
#![feature(staged_api)]
65+
#![feature(rustc_diagnostic_macros)]
66+
#![feature(rustc_private)]
67+
68+
#[macro_use] extern crate log;
69+
#[macro_use] extern crate syntax;
70+
#[macro_use] #[no_link] extern crate rustc_bitflags;
71+
72+
extern crate rustc;
73+
extern crate rustc_front;
74+
5375
pub use self::registry::Registry;
5476

77+
pub mod diagnostics;
5578
pub mod registry;
5679
pub mod load;
5780
pub mod build;

src/librustc/plugin/load.rs renamed to src/librustc_plugin/load.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
//! Used by `rustc` when loading a plugin.
1212
13-
use session::Session;
14-
use metadata::creader::CrateReader;
15-
use metadata::cstore::CStore;
16-
use plugin::registry::Registry;
13+
use rustc::session::Session;
14+
use rustc::metadata::creader::CrateReader;
15+
use rustc::metadata::cstore::CStore;
16+
use registry::Registry;
1717

1818
use std::borrow::ToOwned;
1919
use std::env;

src/librustc/plugin/registry.rs renamed to src/librustc_plugin/registry.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
//! Used by plugin crates to tell `rustc` about the plugins they provide.
1212
13-
use lint::{EarlyLintPassObject, LateLintPassObject, LintId, Lint};
14-
use session::Session;
13+
use rustc::lint::{EarlyLintPassObject, LateLintPassObject, LintId, Lint};
14+
use rustc::session::Session;
1515

1616
use syntax::ext::base::{SyntaxExtension, NamedSyntaxExtension, NormalTT};
1717
use syntax::ext::base::{IdentTT, MultiModifier, MultiDecorator};

src/test/auxiliary/attr_plugin_test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@
1616
extern crate syntax;
1717

1818
extern crate rustc;
19+
extern crate rustc_plugin;
1920

2021
use syntax::feature_gate::AttributeType;
21-
use rustc::plugin::Registry;
22+
use rustc_plugin::Registry;
2223

2324

2425

src/test/auxiliary/custom_derive_plugin.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
extern crate syntax;
1818
extern crate rustc;
19+
extern crate rustc_plugin;
1920

2021
use syntax::ast;
2122
use syntax::codemap::Span;
@@ -25,7 +26,7 @@ use syntax::ext::deriving::generic::{cs_fold, TraitDef, MethodDef, combine_subst
2526
use syntax::ext::deriving::generic::ty::{Literal, LifetimeBounds, Path, borrowed_explicit_self};
2627
use syntax::parse::token;
2728
use syntax::ptr::P;
28-
use rustc::plugin::Registry;
29+
use rustc_plugin::Registry;
2930

3031
#[plugin_registrar]
3132
pub fn plugin_registrar(reg: &mut Registry) {

src/test/auxiliary/custom_derive_plugin_attr.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
extern crate syntax;
1818
extern crate rustc;
19+
extern crate rustc_plugin;
1920

2021
use syntax::ast;
2122
use syntax::attr::AttrMetaMethods;
@@ -27,7 +28,7 @@ use syntax::ext::deriving::generic::{Substructure, Struct, EnumMatching};
2728
use syntax::ext::deriving::generic::ty::{Literal, LifetimeBounds, Path, borrowed_explicit_self};
2829
use syntax::parse::token;
2930
use syntax::ptr::P;
30-
use rustc::plugin::Registry;
31+
use rustc_plugin::Registry;
3132

3233
#[plugin_registrar]
3334
pub fn plugin_registrar(reg: &mut Registry) {

src/test/auxiliary/issue_16723_multiple_items_syntax_ext.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@
1515

1616
extern crate syntax;
1717
extern crate rustc;
18+
extern crate rustc_plugin;
1819

1920
use syntax::ast;
2021
use syntax::codemap;
2122
use syntax::ext::base::{ExtCtxt, MacResult, MacEager};
2223
use syntax::util::small_vector::SmallVector;
23-
use rustc::plugin::Registry;
24+
use rustc_plugin::Registry;
2425

2526
#[plugin_registrar]
2627
pub fn plugin_registrar(reg: &mut Registry) {

src/test/auxiliary/lint_for_crate.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@
1515

1616
#[macro_use] extern crate rustc;
1717
extern crate rustc_front;
18+
extern crate rustc_plugin;
1819
extern crate syntax;
1920

2021
use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
21-
use rustc::plugin::Registry;
22+
use rustc_plugin::Registry;
2223
use rustc_front::hir;
2324
use syntax::attr;
2425

src/test/auxiliary/lint_group_plugin_test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@ extern crate rustc_front;
1818
// Load rustc as a plugin to get macros
1919
#[macro_use]
2020
extern crate rustc;
21+
extern crate rustc_plugin;
2122

2223
use rustc_front::hir;
2324
use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
24-
use rustc::plugin::Registry;
25+
use rustc_plugin::Registry;
2526

2627
declare_lint!(TEST_LINT, Warn, "Warn about items named 'lintme'");
2728

src/test/auxiliary/lint_plugin_test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@ extern crate syntax;
1818
// Load rustc as a plugin to get macros
1919
#[macro_use]
2020
extern crate rustc;
21+
extern crate rustc_plugin;
2122

2223
use rustc::lint::{EarlyContext, LintContext, LintPass, EarlyLintPass,
2324
EarlyLintPassObject, LintArray};
24-
use rustc::plugin::Registry;
25+
use rustc_plugin::Registry;
2526
use syntax::ast;
2627
declare_lint!(TEST_LINT, Warn, "Warn about items named 'lintme'");
2728

src/test/auxiliary/llvm_pass_plugin.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@
1414
#![feature(rustc_private)]
1515

1616
extern crate rustc;
17+
extern crate rustc_plugin;
1718

18-
use rustc::plugin::Registry;
19+
use rustc_plugin::Registry;
1920

2021
#[plugin_registrar]
2122
pub fn plugin_registrar(reg: &mut Registry) {

src/test/auxiliary/lto-syntax-extension-plugin.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@
1414
#![feature(rustc_private)]
1515

1616
extern crate rustc;
17+
extern crate rustc_plugin;
1718

18-
use rustc::plugin::Registry;
19+
use rustc_plugin::Registry;
1920

2021
#[plugin_registrar]
2122
pub fn plugin_registrar(_reg: &mut Registry) {}

src/test/auxiliary/macro_crate_MacroRulesTT.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414

1515
extern crate syntax;
1616
extern crate rustc;
17+
extern crate rustc_plugin;
1718

1819
use syntax::parse::token;
1920
use syntax::ext::base::MacroRulesTT;
20-
use rustc::plugin::Registry;
21+
use rustc_plugin::Registry;
2122

2223
#[plugin_registrar]
2324
pub fn plugin_registrar(reg: &mut Registry) {

src/test/auxiliary/macro_crate_test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@
1414

1515
extern crate syntax;
1616
extern crate rustc;
17+
extern crate rustc_plugin;
1718

1819
use syntax::ast::{self, TokenTree, Item, MetaItem, ImplItem, TraitItem};
1920
use syntax::codemap::Span;
2021
use syntax::ext::base::*;
2122
use syntax::parse::{self, token};
2223
use syntax::ptr::P;
23-
use rustc::plugin::Registry;
24+
use rustc_plugin::Registry;
2425

2526
#[macro_export]
2627
macro_rules! exported_macro { () => (2) }

src/test/auxiliary/plugin_args.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
extern crate syntax;
1717
extern crate rustc;
18+
extern crate rustc_plugin;
1819

1920
use std::borrow::ToOwned;
2021
use syntax::ast;
@@ -24,7 +25,7 @@ use syntax::ext::base::{TTMacroExpander, ExtCtxt, MacResult, MacEager, NormalTT}
2425
use syntax::parse::token;
2526
use syntax::print::pprust;
2627
use syntax::ptr::P;
27-
use rustc::plugin::Registry;
28+
use rustc_plugin::Registry;
2829

2930
struct Expander {
3031
args: Vec<P<ast::MetaItem>>,

0 commit comments

Comments
 (0)