summaryrefslogtreecommitdiff
path: root/www/cliqz/files/patch-bindgen-rust1390
diff options
context:
space:
mode:
Diffstat (limited to 'www/cliqz/files/patch-bindgen-rust1390')
-rw-r--r--www/cliqz/files/patch-bindgen-rust1390170
1 files changed, 170 insertions, 0 deletions
diff --git a/www/cliqz/files/patch-bindgen-rust1390 b/www/cliqz/files/patch-bindgen-rust1390
new file mode 100644
index 000000000000..e7da42f402be
--- /dev/null
+++ b/www/cliqz/files/patch-bindgen-rust1390
@@ -0,0 +1,170 @@
+From 9696bc1795c75b1b527e2b70d9baf3ced9e3c154 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
+Date: Mon, 23 Sep 2019 17:54:37 +0200
+Subject: [PATCH] ir: Make Ord and PartialOrd implementations agree.
+
+See https://github.com/rust-lang/rust/issues/64710.
+
+Bogus implementations were introduced in 230545e7c, d3e39dc62, and 379bb1663.
+
+--- mozilla-release/third_party/rust/bindgen/.cargo-checksum.json.orig 2019-11-05 18:32:47 UTC
++++ mozilla-release/third_party/rust/bindgen/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"Cargo.toml":"7bd5f5264fe47e6bcf50e68017053799b39b8cddaaef5c4690193cb25d70d413","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","README.md":"5a1f556c6a57c0a6ccc65e19c27718e0f4b32381a8efcc80f6601b33c58c5d59","build.rs":"a9f6915c54d75f357ce32f96327bf4df53dc81a505b70831978f9dac6f43841d","src/callbacks.rs":"b24d7982332c6a35928f134184ddf4072fe4545a45546b97b9b0e0c1fbb77c08","src/clang.rs":"e9203eb5a1b432efebafcd011896e35e8c9145037bf99e7bb3709dc1b8e8e783","src/codegen/bitfield_unit.rs":"87be2d7f7774327a1608c2c4d64df869e17fb34b7efdacb4030b6794d98e40f3","src/codegen/bitfield_unit_tests.rs":"2073ac6a36e0bc9afaef5b1207966817c8fb7a1a9f6368c3b1b8f79822efbfba","src/codegen/error.rs":"2613af1d833377fd4a70719f4a09951d9d45dc9227827b9a2a938a1bcaaea2dd","src/codegen/helpers.rs":"aa0daff2061c6de31acfbd113190889e0f7ca2d2b8d4f46740bfd5832c33e4d2","src/codegen/impl_debug.rs":"f82969461d522fb758eca552ceaf189122a404cbb47fcc16008bfe52fc62aefa","src/codegen/impl_partialeq.rs":"d40d9ee2849c4d3d557b033c4d3af5e6de4a44347f67c0f016198086338811af","src/codegen/mod.rs":"9fb48eb14ef1f97e313fe13cfbc1ca96d74262f7a229f1f94011b52079d3df5b","src/codegen/struct_layout.rs":"3fa5524aff82365ce292b0cc85080514c85a6dbd31bce90f001773b995dda28e","src/extra_assertions.rs":"494534bd4f18b80d89b180c8a93733e6617edcf7deac413e9a73fd6e7bc9ced7","src/features.rs":"82511f1bb8cbd04d98f57b000903b0264237962af93a72a58220437213eba1ef","src/ir/analysis/derive.rs":"325d4c1c1e6194e743f42a2316f1501b0ef852fe309f2e9cac3434825ad235f0","src/ir/analysis/has_destructor.rs":"63644f479738df35e531d3324ff892614083c3656e0747aa34d9f20dada878ec","src/ir/analysis/has_float.rs":"76162a309e4285a806755a08c687a3e7bc894a100a63da4e88584035e215b11d","src/ir/analysis/has_type_param_in_array.rs":"fdbc0af28a144c88ea2de83e6e6da5e1ffb40e3dd63fd7a708095d085bb06f94","src/ir/analysis/has_vtable.rs":"5788372d27bdbaaf0454bc17be31a5480918bc41a8a1c4832e8c61185c07f9cd","src/ir/analysis/mod.rs":"1f218e15c19f6666512908abc853fa7ff9ca5d0fafd94f026d9e4b0ce287ec3c","src/ir/analysis/sizedness.rs":"b73865b6689d4f3546edd91909a47c329c4ae630ea97715d29bc683ae1dc17ad","src/ir/analysis/template_params.rs":"6312c008bbc80f50e72a766756c8daddea0b6eeb31ec924b83a231df931e170e","src/ir/annotations.rs":"39a5ab19f4d5dfa617577e4a0d0d2b67b5369d480c7cca4b14d172458c9843f0","src/ir/comment.rs":"c48abe01c5af0f09f583a89f1394bc6c161b40f6c8f0f600bbfe3c907b47969b","src/ir/comp.rs":"498dc771461f9f30db712dd5596fc959133ec5583e2ba6b75036b9afe9d28dcd","src/ir/context.rs":"599226eb04d337a1b1b13af91af91bdb02dbd5f26f274cbc0ebc4489eb144fc0","src/ir/derive.rs":"34f9aa76b6c9c05136bb69dcd6455397faef571a567254d2c541d50a962994db","src/ir/dot.rs":"95ed2968fc3239d87892e9f1edf1ed6dd18630d949564961765967ea1d16960c","src/ir/enum_ty.rs":"7658cf68c00b1732dfa599c2d6b6a93a82de8401142591c3afe5fcb27d901a66","src/ir/function.rs":"c2feb2e26d47aa96a74af9912ada26be077e2b0c36d46fa10167da7109590500","src/ir/int.rs":"07e0c7dbd2dd977177fae3acd2a14adf271c6cf9ff4b57cddc11d50734fd4801","src/ir/item.rs":"3bcdb69b793350e5744aec3577cdbb1e5068ece5220c38763cecd82dfb5e8f03","src/ir/item_kind.rs":"dbeae8c4fd0e5c9485d325aea040e056a1f2cd6d43fc927dee8fe1c0c59a7197","src/ir/layout.rs":"d49582081f5f86f7595afbe4845f38fb3b969a840b568f4a49b265e7d790bb5b","src/ir/mod.rs":"2eae90f207fad2e45957ec9287064992a419e3fc916aba84faff2ea25cbeb5ee","src/ir/module.rs":"c4d90bf38fe3672e01923734ccbdb7951ea929949d5f413a9c2aee12395a5094","src/ir/objc.rs":"758aa955a0c5d6ad82606c88a1f4cd1d93e666b71e82d43b18b1aaae96cf888a","src/ir/template.rs":"c0f8570b927dfd6a421fc4ce3094ec837a3ed936445225dbfac961e8e0842ae5","src/ir/traversal.rs":"ea751379a5aec02f93f8d2c61e18232776b1f000dbeae64b9a7195ba21a19dd6","src/ir/ty.rs":"952fb04cd6a71a2bca5c509aecacb42a1de0cae75824941541a38dc589f0993a","src/ir/var.rs":"8bdafb6d02f2c55ae11c28d88b19fb7a65ba8466da12ff039ae4c16c790b291e","src/lib.rs":"4ca6c5dd71ecac737b4710b4bc65435be11889375be564e9a080879387211247","src/log_stubs.rs":"6dfdd908b7c6453da416cf232893768f9480e551ca4add0858ef88bf71ee6ceb","src/main.rs":"8c96cd2a051e3f09b1b87b75cd9ed77e82e889c8309ebd3e4bc782960cf63e58","src/options.rs":"5b309b225cc51e665bd42ed3e7965a7cd73d984e4455a2d76987fc42ab271ff8","src/parse.rs":"be7d13cc84fae79ec7b3aa9e77063fa475a48d74a854423e2c72d75006a25202","src/regex_set.rs":"5cb72fc3714c0d79e9e942d003349c0775fafd7cd0c9603c65f5261883bbf9cf","src/time.rs":"3b763e6fee51d0eb01228dfe28bc28a9f692aff73b2a7b90a030902e0238fca6"},"package":"6cdac0c63ff3380328d5c427ba4ac8bca04cdd9d3a0379c6e56a43c82a364014"}
+\ No newline at end of file
++{"files":{},"package":"6cdac0c63ff3380328d5c427ba4ac8bca04cdd9d3a0379c6e56a43c82a364014"}
+--- mozilla-release/third_party/rust/bindgen/src/ir/analysis/has_vtable.rs.orig 2019-10-30 17:36:44 UTC
++++ mozilla-release/third_party/rust/bindgen/src/ir/analysis/has_vtable.rs
+@@ -9,37 +9,22 @@ use std::ops;
+ use {HashMap, Entry};
+
+ /// The result of the `HasVtableAnalysis` for an individual item.
+-#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord)]
++#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+ pub enum HasVtableResult {
+- /// The item has a vtable, but the actual vtable pointer is in a base
+- /// member.
+- BaseHasVtable,
++ /// The item does not have a vtable pointer.
++ No,
+
+ /// The item has a vtable and the actual vtable pointer is within this item.
+ SelfHasVtable,
+
+- /// The item does not have a vtable pointer.
+- No
++ /// The item has a vtable, but the actual vtable pointer is in a base
++ /// member.
++ BaseHasVtable,
+ }
+
+ impl Default for HasVtableResult {
+ fn default() -> Self {
+ HasVtableResult::No
+- }
+-}
+-
+-impl cmp::PartialOrd for HasVtableResult {
+- fn partial_cmp(&self, rhs: &Self) -> Option<cmp::Ordering> {
+- use self::HasVtableResult::*;
+-
+- match (*self, *rhs) {
+- (x, y) if x == y => Some(cmp::Ordering::Equal),
+- (BaseHasVtable, _) => Some(cmp::Ordering::Greater),
+- (_, BaseHasVtable) => Some(cmp::Ordering::Less),
+- (SelfHasVtable, _) => Some(cmp::Ordering::Greater),
+- (_, SelfHasVtable) => Some(cmp::Ordering::Less),
+- _ => unreachable!(),
+- }
+ }
+ }
+
+--- mozilla-release/third_party/rust/bindgen/src/ir/analysis/sizedness.rs.orig 2019-10-30 17:36:21 UTC
++++ mozilla-release/third_party/rust/bindgen/src/ir/analysis/sizedness.rs
+@@ -22,13 +22,14 @@ use {HashMap, Entry};
+ ///
+ /// We initially assume that all types are `ZeroSized` and then update our
+ /// understanding as we learn more about each type.
+-#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord)]
++#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+ pub enum SizednessResult {
+- /// Has some size that is known to be greater than zero. That doesn't mean
+- /// it has a static size, but it is not zero sized for sure. In other words,
+- /// it might contain an incomplete array or some other dynamically sized
+- /// type.
+- NonZeroSized,
++ /// The type is zero-sized.
++ ///
++ /// This means that if it is a C++ type, and is not being used as a base
++ /// member, then we must add an `_address` byte to enforce the
++ /// unique-address-per-distinct-object-instance rule.
++ ZeroSized,
+
+ /// Whether this type is zero-sized or not depends on whether a type
+ /// parameter is zero-sized or not.
+@@ -52,32 +53,16 @@ pub enum SizednessResult {
+ /// https://github.com/rust-lang/rust-bindgen/issues/586
+ DependsOnTypeParam,
+
+- /// The type is zero-sized.
+- ///
+- /// This means that if it is a C++ type, and is not being used as a base
+- /// member, then we must add an `_address` byte to enforce the
+- /// unique-address-per-distinct-object-instance rule.
+- ZeroSized,
++ /// Has some size that is known to be greater than zero. That doesn't mean
++ /// it has a static size, but it is not zero sized for sure. In other words,
++ /// it might contain an incomplete array or some other dynamically sized
++ /// type.
++ NonZeroSized,
+ }
+
+ impl Default for SizednessResult {
+ fn default() -> Self {
+ SizednessResult::ZeroSized
+- }
+-}
+-
+-impl cmp::PartialOrd for SizednessResult {
+- fn partial_cmp(&self, rhs: &Self) -> Option<cmp::Ordering> {
+- use self::SizednessResult::*;
+-
+- match (*self, *rhs) {
+- (x, y) if x == y => Some(cmp::Ordering::Equal),
+- (NonZeroSized, _) => Some(cmp::Ordering::Greater),
+- (_, NonZeroSized) => Some(cmp::Ordering::Less),
+- (DependsOnTypeParam, _) => Some(cmp::Ordering::Greater),
+- (_, DependsOnTypeParam) => Some(cmp::Ordering::Less),
+- _ => unreachable!(),
+- }
+ }
+ }
+
+--- mozilla-release/third_party/rust/bindgen/src/ir/derive.rs.orig 2019-10-30 17:36:44 UTC
++++ mozilla-release/third_party/rust/bindgen/src/ir/derive.rs
+@@ -92,10 +92,10 @@ pub trait CanDeriveOrd {
+ ///
+ /// Initially we assume that we can derive trait for all types and then
+ /// update our understanding as we learn more about each type.
+-#[derive(Debug, Copy, Clone, PartialEq, Eq, Ord)]
++#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]
+ pub enum CanDerive {
+- /// No, we cannot.
+- No,
++ /// Yes, we can derive automatically.
++ Yes,
+
+ /// The only thing that stops us from automatically deriving is that
+ /// array with more than maximum number of elements is used.
+@@ -103,29 +103,13 @@ pub enum CanDerive {
+ /// This means we probably can "manually" implement such trait.
+ Manually,
+
+- /// Yes, we can derive automatically.
+- Yes,
++ /// No, we cannot.
++ No,
+ }
+
+ impl Default for CanDerive {
+ fn default() -> CanDerive {
+ CanDerive::Yes
+- }
+-}
+-
+-impl cmp::PartialOrd for CanDerive {
+- fn partial_cmp(&self, rhs: &Self) -> Option<cmp::Ordering> {
+- use self::CanDerive::*;
+-
+- let ordering = match (*self, *rhs) {
+- (x, y) if x == y => cmp::Ordering::Equal,
+- (No, _) => cmp::Ordering::Greater,
+- (_, No) => cmp::Ordering::Less,
+- (Manually, _) => cmp::Ordering::Greater,
+- (_, Manually) => cmp::Ordering::Less,
+- _ => unreachable!()
+- };
+- Some(ordering)
+ }
+ }
+