servo: Merge #9946 - Added compiler lint ban on DOMRefCell (from yoava333:master); r=KiChjang

this resolves https://github.com/servo/servo/issues/9924

Source-Repo: https://github.com/servo/servo
Source-Revision: d23b7481d60f52f9e2fa72b6cd3de7eda05c2419
This commit is contained in:
Yoav Alon 2016-03-10 04:15:33 +05:01
Родитель 3ba3376dfd
Коммит 6b4e12477d
4 изменённых файлов: 29 добавлений и 0 удалений

Просмотреть файл

@ -37,5 +37,11 @@ impl EarlyLintPass for BanPass {
.is_some() {
cx.span_lint(BANNED_TYPE, ty.span, "Banned type Cell<JSVal> detected. Use MutHeap<JSVal> instead")
}
if match_ty_unwrap(ty, &["dom", "bindings", "cell", "DOMRefCell"])
.and_then(|t| t.get(0))
.and_then(|t| match_ty_unwrap(&**t, &["dom", "bindings", "js", "JS"]))
.is_some() {
cx.span_lint(BANNED_TYPE, ty.span, "Banned type DOMRefCell<JS<T>> detected. Use MutHeap<JS<T>> instead")
}
}
}

1
servo/components/servo/Cargo.lock сгенерированный
Просмотреть файл

@ -1472,6 +1472,7 @@ version = "0.0.1"
dependencies = [
"compiletest_helper 0.0.1",
"plugins 0.0.1",
"script 0.0.1",
]
[[package]]

Просмотреть файл

@ -13,3 +13,6 @@ path = "../helper"
[dependencies.plugins]
path = "../../../components/plugins"
[dependencies.script]
path = "../../../components/script"

Просмотреть файл

@ -0,0 +1,19 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#![feature(plugin)]
#![plugin(plugins)]
extern crate script;
use script::dom::bindings::cell::DOMRefCell;
use script::dom::bindings::js::JS;
use script::dom::node::Node;
struct Foo {
bar: DOMRefCell<JS<Node>>
//~^ ERROR Banned type DOMRefCell<JS<T>> detected. Use MutHeap<JS<T>> instead,
}
fn main() {}