]> git.lizzy.rs Git - rust.git/commit
Use a crate attribute to load plugins
authorKeegan McAllister <kmcallister@mozilla.com>
Fri, 6 Feb 2015 21:56:38 +0000 (13:56 -0800)
committerKeegan McAllister <kmcallister@mozilla.com>
Mon, 9 Feb 2015 21:27:27 +0000 (13:27 -0800)
commit93b642d9743edea728ef08b2d6fd17229caaad43
treeb88ec4e6fac283b95735e7c34dac6760e53a2874
parent0ba9e1fa52627404a1e5b90f745f96a872a0c564
Use a crate attribute to load plugins

    #[plugin] #[no_link] extern crate bleh;

becomes a crate attribute

    #![plugin(bleh)]

The feature gate is still required.

It's almost never correct to link a plugin into the resulting library /
executable, because it will bring all of libsyntax and librustc with it.
However if you really want this behavior, you can get it with a separate
`extern crate` item in addition to the `plugin` attribute.

Fixes #21043.
Fixes #20769.

[breaking-change]
42 files changed:
src/doc/reference.md
src/doc/trpl/plugins.md
src/librustc/metadata/creader.rs
src/librustc/plugin/load.rs
src/librustc/plugin/mod.rs
src/librustc/plugin/registry.rs
src/librustc_driver/lib.rs
src/libsyntax/feature_gate.rs
src/test/auxiliary/plugin_args.rs
src/test/auxiliary/syntax-extension-with-dll-deps-1.rs [deleted file]
src/test/auxiliary/syntax-extension-with-dll-deps-2.rs [deleted file]
src/test/auxiliary/syntax_extension_with_dll_deps_1.rs [new file with mode: 0644]
src/test/auxiliary/syntax_extension_with_dll_deps_2.rs [new file with mode: 0644]
src/test/compile-fail-fulldeps/gated-plugin.rs
src/test/compile-fail-fulldeps/lint-group-plugin-deny-cmdline.rs
src/test/compile-fail-fulldeps/lint-plugin-deny-attr.rs
src/test/compile-fail-fulldeps/lint-plugin-deny-cmdline.rs
src/test/compile-fail-fulldeps/lint-plugin-forbid-attrs.rs
src/test/compile-fail-fulldeps/lint-plugin-forbid-cmdline.rs
src/test/compile-fail-fulldeps/macro-crate-cannot-read-embedded-ident.rs
src/test/compile-fail-fulldeps/macro-crate-rlib.rs
src/test/compile-fail-fulldeps/plugin-MacroRulesTT.rs
src/test/compile-fail/malformed-plugin-1.rs [new file with mode: 0644]
src/test/compile-fail/malformed-plugin-2.rs [new file with mode: 0644]
src/test/compile-fail/malformed-plugin-3.rs [new file with mode: 0644]
src/test/compile-fail/multi-plugin-attr.rs [deleted file]
src/test/compile-fail/plugin-extern-crate-attr-deprecated.rs [new file with mode: 0644]
src/test/run-pass-fulldeps/issue_16723_multiple_items_syntax_ext.rs
src/test/run-pass-fulldeps/lint-group-plugin.rs
src/test/run-pass-fulldeps/lint-plugin-cmdline-allow.rs
src/test/run-pass-fulldeps/lint-plugin.rs
src/test/run-pass-fulldeps/macro-crate-does-hygiene-work.rs
src/test/run-pass-fulldeps/macro-crate-outlive-expansion-phase.rs
src/test/run-pass-fulldeps/macro-crate.rs
src/test/run-pass-fulldeps/plugin-args-1.rs
src/test/run-pass-fulldeps/plugin-args-2.rs
src/test/run-pass-fulldeps/plugin-args-3.rs
src/test/run-pass-fulldeps/plugin-args-4.rs [deleted file]
src/test/run-pass-fulldeps/plugin-link-does-resolve.rs [deleted file]
src/test/run-pass-fulldeps/plugin-plus-extern-crate.rs [new file with mode: 0644]
src/test/run-pass-fulldeps/roman-numerals-macro.rs
src/test/run-pass-fulldeps/syntax-extension-with-dll-deps.rs