-
Notifications
You must be signed in to change notification settings - Fork 13.3k
compiler error #16822
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
I believe this may possibly be related to #16643. What version of |
rustc 0.12.0-pre (0d3bd77 2014-08-27 21:31:13 +0000) |
i've managed to reproduce this with a simple example: test.rs: extern crate lib;
use std::cell::RefCell;
struct App{
i: int
}
impl lib::Update for App{
fn update(&mut self){
self.i += 1;
}
}
fn main(){
let app = App{i: 5};
let window = lib::Window{data: RefCell::new(app)};
window.update(1);
} lib.rs #![crate_type = "lib"]
#![crate_name = "lib"]
use std::cell::RefCell;
pub struct Window<Data>{
pub data: RefCell<Data>
}
impl<Data: Update> Window<Data>{
pub fn update(&self, e: i32){
match e{
1 => self.data.borrow_mut().update(),
_ => {}
}
}
}
pub trait Update{
fn update(&mut self);
} the error seems to happen only when accessing a RefCell from a library instanciated with a type coming from a program linking to that library and only if the borrow is inside a match!, it doesn't seem to matter if the borrow is mutable or not. |
here's the cargo files in case it helps to test:
|
Closes rust-lang#5988. Closes rust-lang#10176. Closes rust-lang#10456. Closes rust-lang#12744. Closes rust-lang#13264. Closes rust-lang#13324. Closes rust-lang#14182. Closes rust-lang#15381. Closes rust-lang#15444. Closes rust-lang#15480. Closes rust-lang#15756. Closes rust-lang#16822. Closes rust-lang#16966. Closes rust-lang#17351. Closes rust-lang#17503. Closes rust-lang#17545. Closes rust-lang#17771. Closes rust-lang#17816. Closes rust-lang#17897. Closes rust-lang#17905. Closes rust-lang#18188. Closes rust-lang#18232. Closes rust-lang#18345. Closes rust-lang#18389. Closes rust-lang#18400. Closes rust-lang#18502. Closes rust-lang#18611. Closes rust-lang#18783. Closes rust-lang#19009. Closes rust-lang#19081. Closes rust-lang#19098. Closes rust-lang#19127. Closes rust-lang#19135.
Closes rust-lang#5988. Closes rust-lang#10176. Closes rust-lang#10456. Closes rust-lang#12744. Closes rust-lang#13264. Closes rust-lang#13324. Closes rust-lang#14182. Closes rust-lang#15381. Closes rust-lang#15444. Closes rust-lang#15480. Closes rust-lang#15756. Closes rust-lang#16822. Closes rust-lang#16966. Closes rust-lang#17351. Closes rust-lang#17503. Closes rust-lang#17545. Closes rust-lang#17771. Closes rust-lang#17816. Closes rust-lang#17897. Closes rust-lang#17905. Closes rust-lang#18188. Closes rust-lang#18232. Closes rust-lang#18345. Closes rust-lang#18389. Closes rust-lang#18400. Closes rust-lang#18502. Closes rust-lang#18611. Closes rust-lang#18783. Closes rust-lang#19009. Closes rust-lang#19081. Closes rust-lang#19098. Closes rust-lang#19127. Closes rust-lang#19135.
Closes #5988. Closes #10176. Closes #10456. Closes #12744. Closes #13264. Closes #13324. Closes #14182. Closes #15381. Closes #15444. Closes #15480. Closes #15756. Closes #16822. Closes #16966. Closes #17351. Closes #17503. Closes #17545. Closes #17771. Closes #17816. Closes #17897. Closes #17905. Closes #18188. Closes #18232. Closes #18345. Closes #18389. Closes #18400. Closes #18502. Closes #18611. Closes #18783. Closes #19009. Closes #19081. Closes #19098. Closes #19127. Closes #19135.
fix: Make inlay hint resolving work better for inlays targetting the same position
just updated rust to latest master and while trying to compile a program that was working before i'm getting:
the code is rather large, i have tried to reproduce the error in a smaller example but can't find exactly where's the problem, it seems to be related with doing a borrow_mut() on a RefCell but as i said it doesn't happen on a smaller test
this is the backtrace:
The text was updated successfully, but these errors were encountered: