servo/components/script/dom/bindings
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
..
codegen Modify CodegenRust.py to import structs from sequence return values 2017-02-13 14:35:52 +01:00
callback.rs Don't try to get the global of an object while it's being destroyed. 2017-01-19 10:08:48 +01:00
cell.rs Introduce PendingScript 2017-01-11 17:37:19 +01:00
constant.rs Remove and allow some dead code. 2016-12-22 16:06:22 +01:00
conversions.rs Kill dead code 2017-02-12 09:44:10 +01:00
error.rs Don't return early from report_pending_exception() if the value is an unexpected object. 2016-11-27 10:27:11 +01:00
guard.rs Removed util. 2016-12-14 18:04:37 -06:00
inheritance.rs Rename Reflectable to DomObject. 2016-12-08 08:50:35 -10:00
interface.rs Update js, AGAIN 2016-11-27 12:19:19 +01:00
iterable.rs Use #[dom_struct] on IterableIterator<T> (fixes #12811) 2017-02-15 10:24:02 +01:00
js.rs Remove HeapGCValue 2016-12-12 10:47:54 -10:00
mod.rs Implement the entry global. 2017-01-06 12:56:35 +01:00
mozmap.rs Update js. 2016-11-02 13:25:49 +01:00
namespace.rs Implement WebIDL namespaces 2016-09-08 11:01:34 +02:00
num.rs Use heapsize_derive instead of heapsize_plugin 2016-11-03 01:10:32 +01:00
proxyhandler.rs Make {get,ensure}_expando_object unsafe. 2017-02-07 11:44:38 +01:00
refcounted.rs Rename Reflectable to DomObject. 2016-12-08 08:50:35 -10:00
reflector.rs Replace inheritance_integrity by trait shenanigans 2017-02-15 22:11:20 +01:00
settings_stack.rs Perform a microtask checkpoint after executing classic scripts and callbacks. 2017-02-01 12:54:33 -05:00
str.rs Implement document.open and document.close (fixes #14591) 2017-02-03 16:50:12 +01:00
structuredclone.rs Make StructuredCloneData::read take a &GlobalScope 2016-10-06 21:35:40 +02:00
trace.rs Bug 1336646 - Apply selector flags during traversal. r=emilio 2017-02-08 19:21:05 -08:00
utils.rs Update js, AGAIN 2016-11-27 12:19:19 +01:00
weakref.rs squash: convert less interesting debug! logs to traces 2017-01-18 22:21:41 -07:00
xmlname.rs Update to string-cache 0.3 2016-11-03 16:23:05 +01:00