Remove redundant webidl_must_inherit compiler plugin lint

At first I was considering moving it to a procedural macro
(source-level information should be sufficient),
and started by trying to reproduce the error case
by changing `htmldivelement.rs` to use `Element` instead of `HTMLElement`
as the first field.

The output was:

```rust
error[E0308]: mismatched types
   --> /home/simon/servo2/target/debug/build/script-4caa244faca7d10f/out/Bindings/HTMLDivElementBinding.rs:665:31
    |
665 |         let _: &HTMLElement = self.as_parent();
    |                               ^^^^^^^^^^^^^^^^ expected struct `dom::htmlelement::HTMLElement`, found struct `dom::element::Element`
    |
    = note: expected type `&dom::htmlelement::HTMLElement`
               found type `&dom::element::Element`
```

This line number is inside a generated method called `__assert_parent_type`.
As far as I can tell, any case where this lint would error is already caught
by such methods. The lint is therefore redundant and can safely be removed.
This commit is contained in:
Simon Sapin 2019-09-29 23:11:40 +02:00
parent 086e06b28b
commit 47c269360c
6 changed files with 1 additions and 241 deletions

View file

@ -24,8 +24,6 @@ extern crate rustc;
extern crate rustc_driver;
extern crate syntax;
extern crate weedle;
use rustc_driver::plugin::Registry;
use syntax::feature_gate::AttributeType::Whitelisted;
use syntax::symbol::Symbol;
@ -33,9 +31,6 @@ use syntax::symbol::Symbol;
#[cfg(feature = "unrooted_must_root_lint")]
mod unrooted_must_root;
#[cfg(feature = "webidl_lint")]
mod webidl_must_inherit;
/// Utilities for writing plugins
#[cfg(feature = "unrooted_must_root_lint")]
mod utils;
@ -49,15 +44,9 @@ pub fn plugin_registrar(reg: &mut Registry) {
symbols.clone(),
)));
#[cfg(feature = "webidl_lint")]
reg.register_late_lint_pass(Box::new(webidl_must_inherit::WebIdlPass::new(
symbols.clone(),
)));
reg.register_attribute(symbols.allow_unrooted_interior, Whitelisted);
reg.register_attribute(symbols.allow_unrooted_in_rc, Whitelisted);
reg.register_attribute(symbols.must_root, Whitelisted);
reg.register_attribute(symbols.webidl, Whitelisted);
}
macro_rules! symbols {
@ -82,7 +71,6 @@ symbols! {
allow_unrooted_interior
allow_unrooted_in_rc
must_root
webidl
alloc
rc
Rc