]> git.pld-linux.org Git - packages/firefox60-esr.git/blob - rust-cssparser-bugfix.patch
- added rust-url-bugfix,rust-cssparser-bugfix,noztext patches, but still fails to...
[packages/firefox60-esr.git] / rust-cssparser-bugfix.patch
1 From 3c98d22c5de3b696bf1fde2b6c90069812312aa6 Mon Sep 17 00:00:00 2001
2 From: Simon Sapin <simon.sapin@exyr.org>
3 Date: Tue, 23 Apr 2019 13:47:25 +0200
4 Subject: [PATCH] Fix a future-compat warning
5
6 ```
7 warning[E0506]: cannot assign to `self.input.cached_token` because it is borrowed
8    --> src/parser.rs:591:17
9     |
10 566 |     pub fn next_including_whitespace_and_comments(&mut self) -> Result<&Token<'i>, BasicParseError<'i>> {
11     |                                                   - let's call the lifetime of this reference `'1`
12 ...
13 579 |             Some(ref cached_token)
14     |                  ---------------- borrow of `self.input.cached_token` occurs here
15 ...
16 591 |                 self.input.cached_token = Some(CachedToken {
17     |                 ^^^^^^^^^^^^^^^^^^^^^^^ assignment to borrowed `self.input.cached_token` occurs here
18 ...
19 603 |         Ok(token)
20     |         --------- returning this value requires that `self.input.cached_token.0` is borrowed for `'1`
21     |
22     = warning: this error has been downgraded to a warning for backwards compatibility with previous releases
23     = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future
24 ```
25 ---
26  src/parser.rs | 50 +++++++++++++++++++++++++++-----------------------
27  1 file changed, 27 insertions(+), 23 deletions(-)
28
29 diff --git a/src/parser.rs b/src/parser.rs
30 index 51f441e4..7cef117c 100644
31 --- a/src/parser.rs
32 +++ b/src/parser.rs
33 @@ -555,28 +555,34 @@
34          }
35  
36          let token_start_position = self.input.tokenizer.position();
37 -        let token;
38 -        match self.input.cached_token {
39 -            Some(ref cached_token)
40 -            if cached_token.start_position == token_start_position => {
41 -                self.input.tokenizer.reset(&cached_token.end_state);
42 -                match cached_token.token {
43 -                    Token::Function(ref name) => self.input.tokenizer.see_function(name),
44 -                    _ => {}
45 -                }
46 -                token = &cached_token.token
47 +        let using_cached_token = self
48 +            .input
49 +            .cached_token
50 +            .as_ref()
51 +            .map_or(false, |cached_token| {
52 +                cached_token.start_position == token_start_position
53 +            });
54 +        let token = if using_cached_token {
55 +            let cached_token = self.input.cached_token.as_ref().unwrap();
56 +            self.input.tokenizer.reset(&cached_token.end_state);
57 +            match cached_token.token {
58 +                Token::Function(ref name) => self.input.tokenizer.see_function(name),
59 +                _ => {}
60              }
61 -            _ => {
62 -                let new_token = self.input.tokenizer.next()
63 -                    .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
64 -                self.input.cached_token = Some(CachedToken {
65 -                    token: new_token,
66 -                    start_position: token_start_position,
67 -                    end_state: self.input.tokenizer.state(),
68 -                });
69 -                token = self.input.cached_token_ref()
70 -            }
71 -        }
72 +            &cached_token.token
73 +        } else {
74 +            let new_token = self
75 +                .input
76 +                .tokenizer
77 +                .next()
78 +                .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
79 +            self.input.cached_token = Some(CachedToken {
80 +                token: new_token,
81 +                start_position: token_start_position,
82 +                end_state: self.input.tokenizer.state(),
83 +            });
84 +            self.input.cached_token_ref()
85 +        };
86  
87          if let Some(block_type) = BlockType::opening(token) {
88              self.at_start_of = Some(block_type);
89 --- cssparser/.cargo-checksum.json.orig 2019-09-01 15:09:43.000000000 +0200
90 +++ cssparser/.cargo-checksum.json      2020-03-14 16:46:08.210418153 +0100
91 @@ -1 +1 @@
92 -{"files":{".travis.yml":"f1fb4b65964c81bc1240544267ea334f554ca38ae7a74d57066f4d47d2b5d568","Cargo.toml":"7807f16d417eb1a6ede56cd4ba2da6c5c63e4530289b3f0848f4b154e18eba02","LICENSE":"fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85","README.md":"c5781e673335f37ed3d7acb119f8ed33efdf6eb75a7094b7da2abe0c3230adb8","build.rs":"b29fc57747f79914d1c2fb541e2bb15a003028bb62751dcb901081ccc174b119","build/match_byte.rs":"2c84b8ca5884347d2007f49aecbd85b4c7582085526e2704399817249996e19b","docs/.nojekyll":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","docs/404.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","docs/index.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","src/color.rs":"c60f1b0ab7a2a6213e434604ee33f78e7ef74347f325d86d0b9192d8225ae1cc","src/cow_rc_str.rs":"541216f8ef74ee3cc5cbbc1347e5f32ed66588c401851c9a7d68b867aede1de0","src/from_bytes.rs":"331fe63af2123ae3675b61928a69461b5ac77799fff3ce9978c55cf2c558f4ff","src/lib.rs":"46c377e0c9a75780d5cb0bcf4dfb960f0fb2a996a13e7349bb111b9082252233","src/macros.rs":"adb9773c157890381556ea83d7942dcc676f99eea71abbb6afeffee1e3f28960","src/nth.rs":"5c70fb542d1376cddab69922eeb4c05e4fcf8f413f27563a2af50f72a47c8f8c","src/parser.rs":"9ed4aec998221eb2d2ba99db2f9f82a02399fb0c3b8500627f68f5aab872adde","src/rules_and_declarations.rs":"be2c4f3f3bb673d866575b6cb6084f1879dff07356d583ca9a3595f63b7f916f","src/serializer.rs":"4ccfc9b4fe994aab3803662bbf31cc25052a6a39531073a867b14b224afe42dd","src/size_of_tests.rs":"e5f63c8c18721cc3ff7a5407e84f9889ffa10e66da96e8510a696c3e00ad72d5","src/tests.rs":"80b02c80ab0fd580dad9206615c918e0db7dff63dfed0feeedb66f317d24b24b","src/tokenizer.rs":"429b2cba419cf8b923fbcc32d3bd34c0b39284ebfcb9fc29b8eb8643d8d5f312","src/unicode_range.rs":"c1c4ed2493e09d248c526ce1ef8575a5f8258da3962b64ffc814ef3bdf9780d0"},"package":"8a807ac3ab7a217829c2a3b65732b926b2befe6a35f33b4bf8b503692430f223"}
93 \ No newline at end of file
94 +{"files":{".travis.yml":"f1fb4b65964c81bc1240544267ea334f554ca38ae7a74d57066f4d47d2b5d568","Cargo.toml":"7807f16d417eb1a6ede56cd4ba2da6c5c63e4530289b3f0848f4b154e18eba02","LICENSE":"fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85","README.md":"c5781e673335f37ed3d7acb119f8ed33efdf6eb75a7094b7da2abe0c3230adb8","build.rs":"b29fc57747f79914d1c2fb541e2bb15a003028bb62751dcb901081ccc174b119","build/match_byte.rs":"2c84b8ca5884347d2007f49aecbd85b4c7582085526e2704399817249996e19b","docs/.nojekyll":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","docs/404.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","docs/index.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","src/color.rs":"c60f1b0ab7a2a6213e434604ee33f78e7ef74347f325d86d0b9192d8225ae1cc","src/cow_rc_str.rs":"541216f8ef74ee3cc5cbbc1347e5f32ed66588c401851c9a7d68b867aede1de0","src/from_bytes.rs":"331fe63af2123ae3675b61928a69461b5ac77799fff3ce9978c55cf2c558f4ff","src/lib.rs":"46c377e0c9a75780d5cb0bcf4dfb960f0fb2a996a13e7349bb111b9082252233","src/macros.rs":"adb9773c157890381556ea83d7942dcc676f99eea71abbb6afeffee1e3f28960","src/nth.rs":"5c70fb542d1376cddab69922eeb4c05e4fcf8f413f27563a2af50f72a47c8f8c","src/parser.rs":"6bd16e08c29cb31c358f3cfeb9c6659227f24a95d399c14cf969c8b1a0e931fd","src/rules_and_declarations.rs":"be2c4f3f3bb673d866575b6cb6084f1879dff07356d583ca9a3595f63b7f916f","src/serializer.rs":"4ccfc9b4fe994aab3803662bbf31cc25052a6a39531073a867b14b224afe42dd","src/size_of_tests.rs":"e5f63c8c18721cc3ff7a5407e84f9889ffa10e66da96e8510a696c3e00ad72d5","src/tests.rs":"80b02c80ab0fd580dad9206615c918e0db7dff63dfed0feeedb66f317d24b24b","src/tokenizer.rs":"429b2cba419cf8b923fbcc32d3bd34c0b39284ebfcb9fc29b8eb8643d8d5f312","src/unicode_range.rs":"c1c4ed2493e09d248c526ce1ef8575a5f8258da3962b64ffc814ef3bdf9780d0"},"package":"8a807ac3ab7a217829c2a3b65732b926b2befe6a35f33b4bf8b503692430f223"}
95 \ No newline at end of file
This page took 0.107432 seconds and 3 git commands to generate.