밑줄만 제거하고 충돌한 이름에 숫자를 붙인 결과라 이름이 무엇을 검사하는지 오히려 덜 드러낸다. own/badfld 와 types/badfld 가 서로 다른 것을 검사하는데 둘 다 badfmem 이 된 것이 그 증거다. 파일을 열어 판단하는 작업이므로 마커 판정과 함께 다시 한다.
14 lines
269 B
Plaintext
14 lines
269 B
Plaintext
unit bad_clos;
|
|
|
|
struct FileLike {
|
|
handle: i32,
|
|
fn close(self: Self) -> !void { self.handle = 0; }
|
|
fn drop(self: &mut Self) { self.handle = 0; }
|
|
}
|
|
|
|
fn bad() -> !void {
|
|
let file: FileLike = FileLike{ handle: 7 };
|
|
try file.close();
|
|
file.close();
|
|
}
|