test syntax::text::tests::test_text_equality ... error: Undefined Behavior: trying to reborrow <232138> for SharedReadWrite permission at alloc98393[0x0], but that tag does not exist in the borrow stack for this location
--> /home/dquirl/.cargo/registry/src/github.com-1ecc6299db9ec823/triomphe-0.1.6/src/arc.rs:214:18
|
214 | unsafe { &*self.ptr() }
| ^^^^^^^^^^^^
| |
| trying to reborrow <232138> for SharedReadWrite permission at alloc98393[0x0], but that tag does not exist in the borrow stack for this location
| this error occurs as part of a reborrow at alloc98393[0x0..0x8]
|
= help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
= help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
help: <232138> was created by a retag at offsets [0x8..0x14]
--> src/green/token.rs:50:19
|
50 | let ptr = Arc::into_raw(Arc::new(data));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: inside `triomphe::Arc::<green::token::GreenTokenData>::inner` at /home/dquirl/.cargo/registry/src/github.com-1ecc6299db9ec823/triomphe-0.1.6/src/arc.rs:214:18
= note: inside `<triomphe::Arc<green::token::GreenTokenData> as std::clone::Clone>::clone` at /home/dquirl/.cargo/registry/src/github.com-1ecc6299db9ec823/triomphe-0.1.6/src/arc.rs:322:24
note: inside `<green::token::GreenToken as std::clone::Clone>::clone` at src/green/token.rs:103:27
--> src/green/token.rs:103:27
|
103 | Arc::into_raw(Arc::clone(&arc))
| ^^^^^^^^^^^^^^^^
note: inside `green::builder::NodeCache::token` at src/green/builder.rs:216:9
--> src/green/builder.rs:216:9
|
216 | / self.tokens
217 | | .entry(data)
218 | | .or_insert_with_key(|data| GreenToken::new(*data))
219 | | .clone()
| |____________________^
note: inside `green::builder::GreenNodeBuilder::token` at src/green/builder.rs:408:21
--> src/green/builder.rs:408:21
|
408 | let token = self.cache.token(kind, text);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: inside `syntax::text::tests::build_tree` at src/syntax/text.rs:421:13
--> src/syntax/text.rs:421:13
|
421 | builder.token(SyntaxKind(92), chunk);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: inside `syntax::text::tests::test_text_equality::do_check` at src/syntax/text.rs:431:34
--> src/syntax/text.rs:431:34
|
431 | let (t1, resolver) = build_tree(t1);
| ^^^^^^^^^^^^^^
note: inside `syntax::text::tests::test_text_equality::check` at src/syntax/text.rs:442:13
--> src/syntax/text.rs:442:13
|
442 | do_check(t1, t2);
| ^^^^^^^^^^^^^^^^
note: inside `syntax::text::tests::test_text_equality` at src/syntax/text.rs:446:9
--> src/syntax/text.rs:446:9
|
446 | check(&[""], &[""]);
| ^^^^^^^^^^^^^^^^^^^
note: inside closure at src/syntax/text.rs:429:5
--> src/syntax/text.rs:429:5
|
428 | #[test]
| ------- in this procedural macro expansion
429 | / fn test_text_equality() {
430 | | fn do_check(t1: &[&str], t2: &[&str]) {
431 | | let (t1, resolver) = build_tree(t1);
432 | | let t1 = t1.resolve_text(&resolver);
... |
456 | | check(&["{", "abc", "}ab"], &["{", "abc", "}", "ab"]);
457 | | }
| |_____^