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
7 warning[E0506]: cannot assign to `self.input.cached_token` because it is borrowed
8 --> src/parser.rs:591:17
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`
13 579 | Some(ref cached_token)
14 | ---------------- borrow of `self.input.cached_token` occurs here
16 591 | self.input.cached_token = Some(CachedToken {
17 | ^^^^^^^^^^^^^^^^^^^^^^^ assignment to borrowed `self.input.cached_token` occurs here
20 | --------- returning this value requires that `self.input.cached_token.0` is borrowed for `'1`
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
26 src/parser.rs | 50 +++++++++++++++++++++++++++-----------------------
27 1 file changed, 27 insertions(+), 23 deletions(-)
29 diff --git a/src/parser.rs b/src/parser.rs
30 index 51f441e4..7cef117c 100644
36 let token_start_position = self.input.tokenizer.position();
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),
46 - token = &cached_token.token
47 + let using_cached_token = self
51 + .map_or(false, |cached_token| {
52 + cached_token.start_position == token_start_position
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),
62 - let new_token = self.input.tokenizer.next()
63 - .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
64 - self.input.cached_token = Some(CachedToken {
66 - start_position: token_start_position,
67 - end_state: self.input.tokenizer.state(),
69 - token = self.input.cached_token_ref()
74 + let new_token = self
78 + .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
79 + self.input.cached_token = Some(CachedToken {
81 + start_position: token_start_position,
82 + end_state: self.input.tokenizer.state(),
84 + self.input.cached_token_ref()
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
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