Commit graph

7 commits

Author SHA1 Message Date
Anthony Ramine
a6d59d8714 Replace inheritance_integrity by trait shenanigans
For each derived DomObject impl, we also generate a dummy trait
ShouldNotImplDomObject that is implemented for all T: DomObject.
We then try to implement it for each field type except the first one.
If compilation succeed, this means that field type doesn't implement
DomObject itself otherwise it would break coherence rules.

error[E0119]: conflicting implementations of trait `dom::xmlhttprequest::_IMPL_DOMOBJECT_FOR_XMLHttpRequest::ShouldNotImplDomObject` for type `((), SomeFieldTypeThatShouldNotImplementDomObject)`:
   --> /Users/nox/src/servo/components/script/dom/xmlhttprequest.rs:120:1
    |
120 | #[dom_struct]
    | ^^^^^^^^^^^^^
    | |
    | first implementation here
    | conflicting implementation for `((), SomeFieldTypeThatShouldNotImplementDomObject)`
2017-02-15 22:11:20 +01:00
Anthony Ramine
8bcf36b9a5 Change #[privatize] into #[derive(DenyPublicFields)] 2017-02-15 10:24:01 +01:00
Anthony Ramine
19c645ff68 Kill transmute-type-lint 2017-02-15 10:10:37 +01:00
Manish Goregaokar
efa84862af
Remove str_to_string lint
Specialization makes all of the options equally efficient.
2016-04-08 06:44:57 +05:30
Manish Goregaokar
077bd840a3 Ban Cell<JS<T>> and Cell<JSVal<T>> (partial #4336) 2015-01-04 15:22:11 +05:30
Ms2ger
a55e1d1974 Remove spurious spaces from lints/mod.rs. 2015-01-01 21:25:31 +01:00
Rohan Prinja
7ac58f202f break up lints.rs into separate files 2015-01-01 13:50:55 +05:30