提交 ce216a55 编写于 作者: B Brian Anderson

rustc: Remove the session dependency from front::attr

上级 cb2840bc
......@@ -302,7 +302,7 @@ fn provided_link_metas(sess: session, c: ast::crate) ->
let mut vers: option<str> = none;
let mut cmh_items: [@ast::meta_item] = [];
let linkage_metas = attr::find_linkage_metas(c.node.attrs);
attr::require_unique_names(sess, linkage_metas);
attr::require_unique_names(sess.diagnostic(), linkage_metas);
for meta: @ast::meta_item in linkage_metas {
if attr::get_meta_item_name(meta) == "name" {
alt attr::get_meta_item_value_str(meta) {
......
......@@ -4,7 +4,7 @@
import std::map::hashmap;
import either::either;
import syntax::{ast, ast_util};
import driver::session::session;
import driver::diagnostic::span_handler;
export attr_meta;
export attr_metas;
......@@ -220,13 +220,14 @@ fn remove_meta_items_by_name(items: [@ast::meta_item], name: str) ->
ret vec::filter_map(items, filter);
}
fn require_unique_names(sess: session, metas: [@ast::meta_item]) {
fn require_unique_names(diagnostic: span_handler,
metas: [@ast::meta_item]) {
let map = map::str_hash();
for meta: @ast::meta_item in metas {
let name = get_meta_item_name(meta);
if map.contains_key(name) {
sess.span_fatal(meta.span,
#fmt["duplicate meta item `%s`", name]);
diagnostic.span_fatal(meta.span,
#fmt["duplicate meta item `%s`", name]);
}
map.insert(name, ());
}
......
......@@ -137,7 +137,7 @@ fn find_library_crate(sess: session::session, ident: ast::ident,
metas: [@ast::meta_item])
-> option<{ident: str, data: @[u8]}> {
attr::require_unique_names(sess, metas);
attr::require_unique_names(sess.diagnostic(), metas);
let metas = metas;
let crate_name =
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册