rusti: Remove #[allow(vecs_implicitly_copyable)]
This commit is contained in:
parent
92d39fe4d5
commit
ccfb3ebf03
4 changed files with 43 additions and 43 deletions
|
@ -125,7 +125,7 @@ fn fold_enum(
|
||||||
}.get();
|
}.get();
|
||||||
|
|
||||||
pprust::variant_to_str(
|
pprust::variant_to_str(
|
||||||
ast_variant, extract::interner())
|
&ast_variant, extract::interner())
|
||||||
}
|
}
|
||||||
_ => fail!("enum variant not bound to an enum item")
|
_ => fail!("enum variant not bound to an enum item")
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,14 +18,12 @@
|
||||||
#[license = "MIT/ASL2"];
|
#[license = "MIT/ASL2"];
|
||||||
#[crate_type = "lib"];
|
#[crate_type = "lib"];
|
||||||
|
|
||||||
#[allow(vecs_implicitly_copyable,
|
|
||||||
non_implicitly_copyable_typarams)];
|
|
||||||
|
|
||||||
extern mod std(vers = "0.7-pre");
|
extern mod std(vers = "0.7-pre");
|
||||||
extern mod rustc(vers = "0.7-pre");
|
extern mod rustc(vers = "0.7-pre");
|
||||||
extern mod syntax(vers = "0.7-pre");
|
extern mod syntax(vers = "0.7-pre");
|
||||||
|
|
||||||
use core::*;
|
use core::*;
|
||||||
|
use core::cell::Cell;
|
||||||
use rustc::driver::{driver, session};
|
use rustc::driver::{driver, session};
|
||||||
use syntax::{ast, diagnostic};
|
use syntax::{ast, diagnostic};
|
||||||
use syntax::ast_util::*;
|
use syntax::ast_util::*;
|
||||||
|
@ -71,8 +69,8 @@ fn with_pp(intr: @token::ident_interner,
|
||||||
* because it has to parse the statements and view_items on each
|
* because it has to parse the statements and view_items on each
|
||||||
* input.
|
* input.
|
||||||
*/
|
*/
|
||||||
fn record(repl: Repl, blk: @ast::blk, intr: @token::ident_interner) -> Repl {
|
fn record(mut repl: Repl, blk: &ast::blk, intr: @token::ident_interner) -> Repl {
|
||||||
let view_items = if blk.node.view_items.len() > 0 {
|
if blk.node.view_items.len() > 0 {
|
||||||
let new_view_items = do with_pp(intr) |pp, writer| {
|
let new_view_items = do with_pp(intr) |pp, writer| {
|
||||||
for blk.node.view_items.each |view_item| {
|
for blk.node.view_items.each |view_item| {
|
||||||
pprust::print_view_item(pp, *view_item);
|
pprust::print_view_item(pp, *view_item);
|
||||||
|
@ -82,9 +80,9 @@ fn record(repl: Repl, blk: @ast::blk, intr: @token::ident_interner) -> Repl {
|
||||||
|
|
||||||
debug!("new view items %s", new_view_items);
|
debug!("new view items %s", new_view_items);
|
||||||
|
|
||||||
repl.view_items + "\n" + new_view_items
|
repl.view_items = repl.view_items + "\n" + new_view_items
|
||||||
} else { repl.view_items };
|
}
|
||||||
let stmts = if blk.node.stmts.len() > 0 {
|
if blk.node.stmts.len() > 0 {
|
||||||
let new_stmts = do with_pp(intr) |pp, writer| {
|
let new_stmts = do with_pp(intr) |pp, writer| {
|
||||||
for blk.node.stmts.each |stmt| {
|
for blk.node.stmts.each |stmt| {
|
||||||
match stmt.node {
|
match stmt.node {
|
||||||
|
@ -105,24 +103,21 @@ fn record(repl: Repl, blk: @ast::blk, intr: @token::ident_interner) -> Repl {
|
||||||
|
|
||||||
debug!("new stmts %s", new_stmts);
|
debug!("new stmts %s", new_stmts);
|
||||||
|
|
||||||
repl.stmts + "\n" + new_stmts
|
repl.stmts = repl.stmts + "\n" + new_stmts
|
||||||
} else { repl.stmts };
|
|
||||||
|
|
||||||
Repl{
|
|
||||||
view_items: view_items,
|
|
||||||
stmts: stmts,
|
|
||||||
.. repl
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return repl;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Run an input string in a Repl, returning the new Repl.
|
/// Run an input string in a Repl, returning the new Repl.
|
||||||
fn run(repl: Repl, input: ~str) -> Repl {
|
fn run(repl: Repl, input: ~str) -> Repl {
|
||||||
|
let binary = @copy repl.binary;
|
||||||
let options = @session::options {
|
let options = @session::options {
|
||||||
crate_type: session::unknown_crate,
|
crate_type: session::unknown_crate,
|
||||||
binary: @repl.binary,
|
binary: binary,
|
||||||
addl_lib_search_paths: repl.lib_search_paths.map(|p| Path(*p)),
|
addl_lib_search_paths: repl.lib_search_paths.map(|p| Path(*p)),
|
||||||
jit: true,
|
jit: true,
|
||||||
.. *session::basic_options()
|
.. copy *session::basic_options()
|
||||||
};
|
};
|
||||||
|
|
||||||
debug!("building driver input");
|
debug!("building driver input");
|
||||||
|
@ -138,7 +133,7 @@ fn run(repl: Repl, input: ~str) -> Repl {
|
||||||
|
|
||||||
debug!("building driver configuration");
|
debug!("building driver configuration");
|
||||||
let cfg = driver::build_configuration(sess,
|
let cfg = driver::build_configuration(sess,
|
||||||
@repl.binary,
|
binary,
|
||||||
&wrapped);
|
&wrapped);
|
||||||
|
|
||||||
let outputs = driver::build_output_filenames(&wrapped, &None, &None, sess);
|
let outputs = driver::build_output_filenames(&wrapped, &None, &None, sess);
|
||||||
|
@ -151,7 +146,7 @@ fn run(repl: Repl, input: ~str) -> Repl {
|
||||||
|
|
||||||
for crate.node.module.items.each |item| {
|
for crate.node.module.items.each |item| {
|
||||||
match item.node {
|
match item.node {
|
||||||
ast::item_fn(_, _, _, _, blk) => {
|
ast::item_fn(_, _, _, _, ref blk) => {
|
||||||
if item.ident == sess.ident_of("main") {
|
if item.ident == sess.ident_of("main") {
|
||||||
opt = blk.node.expr;
|
opt = blk.node.expr;
|
||||||
}
|
}
|
||||||
|
@ -160,10 +155,11 @@ fn run(repl: Repl, input: ~str) -> Repl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let blk = match opt.get().node {
|
let e = opt.unwrap();
|
||||||
ast::expr_call(_, exprs, _) => {
|
let blk = match e.node {
|
||||||
|
ast::expr_call(_, ref exprs, _) => {
|
||||||
match exprs[0].node {
|
match exprs[0].node {
|
||||||
ast::expr_block(blk) => @blk,
|
ast::expr_block(ref blk) => blk,
|
||||||
_ => fail!()
|
_ => fail!()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -182,15 +178,16 @@ fn run(repl: Repl, input: ~str) -> Repl {
|
||||||
fn compile_crate(src_filename: ~str, binary: ~str) -> Option<bool> {
|
fn compile_crate(src_filename: ~str, binary: ~str) -> Option<bool> {
|
||||||
match do task::try {
|
match do task::try {
|
||||||
let src_path = Path(src_filename);
|
let src_path = Path(src_filename);
|
||||||
|
let binary = @copy binary;
|
||||||
let options = @session::options {
|
let options = @session::options {
|
||||||
binary: @binary,
|
binary: binary,
|
||||||
addl_lib_search_paths: ~[os::getcwd()],
|
addl_lib_search_paths: ~[os::getcwd()],
|
||||||
.. *session::basic_options()
|
.. copy *session::basic_options()
|
||||||
};
|
};
|
||||||
let input = driver::file_input(src_path);
|
let input = driver::file_input(copy src_path);
|
||||||
let sess = driver::build_session(options, diagnostic::emit);
|
let sess = driver::build_session(options, diagnostic::emit);
|
||||||
*sess.building_library = true;
|
*sess.building_library = true;
|
||||||
let cfg = driver::build_configuration(sess, @binary, &input);
|
let cfg = driver::build_configuration(sess, binary, &input);
|
||||||
let outputs = driver::build_output_filenames(
|
let outputs = driver::build_output_filenames(
|
||||||
&input, &None, &None, sess);
|
&input, &None, &None, sess);
|
||||||
// If the library already exists and is newer than the source
|
// If the library already exists and is newer than the source
|
||||||
|
@ -233,7 +230,7 @@ fn compile_crate(src_filename: ~str, binary: ~str) -> Option<bool> {
|
||||||
|
|
||||||
/// Tries to get a line from rl after outputting a prompt. Returns
|
/// Tries to get a line from rl after outputting a prompt. Returns
|
||||||
/// None if no input was read (e.g. EOF was reached).
|
/// None if no input was read (e.g. EOF was reached).
|
||||||
fn get_line(use_rl: bool, prompt: ~str) -> Option<~str> {
|
fn get_line(use_rl: bool, prompt: &str) -> Option<~str> {
|
||||||
if use_rl {
|
if use_rl {
|
||||||
let result = unsafe { rl::read(prompt) };
|
let result = unsafe { rl::read(prompt) };
|
||||||
|
|
||||||
|
@ -280,11 +277,11 @@ fn run_cmd(repl: &mut Repl, _in: @io::Reader, _out: @io::Writer,
|
||||||
for args.each |arg| {
|
for args.each |arg| {
|
||||||
let (crate, filename) =
|
let (crate, filename) =
|
||||||
if arg.ends_with(".rs") || arg.ends_with(".rc") {
|
if arg.ends_with(".rs") || arg.ends_with(".rc") {
|
||||||
(arg.substr(0, arg.len() - 3).to_owned(), *arg)
|
(arg.substr(0, arg.len() - 3).to_owned(), copy *arg)
|
||||||
} else {
|
} else {
|
||||||
(*arg, arg + ~".rs")
|
(copy *arg, arg + ".rs")
|
||||||
};
|
};
|
||||||
match compile_crate(filename, repl.binary) {
|
match compile_crate(filename, copy repl.binary) {
|
||||||
Some(_) => loaded_crates.push(crate),
|
Some(_) => loaded_crates.push(crate),
|
||||||
None => { }
|
None => { }
|
||||||
}
|
}
|
||||||
|
@ -311,7 +308,7 @@ fn run_cmd(repl: &mut Repl, _in: @io::Reader, _out: @io::Writer,
|
||||||
let mut multiline_cmd = ~"";
|
let mut multiline_cmd = ~"";
|
||||||
let mut end_multiline = false;
|
let mut end_multiline = false;
|
||||||
while (!end_multiline) {
|
while (!end_multiline) {
|
||||||
match get_line(use_rl, ~"rusti| ") {
|
match get_line(use_rl, "rusti| ") {
|
||||||
None => fail!("unterminated multiline command :{ .. :}"),
|
None => fail!("unterminated multiline command :{ .. :}"),
|
||||||
Some(line) => {
|
Some(line) => {
|
||||||
if str::trim(line) == ~":}" {
|
if str::trim(line) == ~":}" {
|
||||||
|
@ -334,14 +331,14 @@ fn run_cmd(repl: &mut Repl, _in: @io::Reader, _out: @io::Writer,
|
||||||
fn run_line(repl: &mut Repl, in: @io::Reader, out: @io::Writer, line: ~str,
|
fn run_line(repl: &mut Repl, in: @io::Reader, out: @io::Writer, line: ~str,
|
||||||
use_rl: bool)
|
use_rl: bool)
|
||||||
-> Option<Repl> {
|
-> Option<Repl> {
|
||||||
if line.starts_with(~":") {
|
if line.starts_with(":") {
|
||||||
let full = line.substr(1, line.len() - 1);
|
let full = line.substr(1, line.len() - 1);
|
||||||
let mut split = ~[];
|
let mut split = ~[];
|
||||||
for str::each_word(full) |word| { split.push(word.to_owned()) }
|
for str::each_word(full) |word| { split.push(word.to_owned()) }
|
||||||
let len = split.len();
|
let len = split.len();
|
||||||
|
|
||||||
if len > 0 {
|
if len > 0 {
|
||||||
let cmd = split[0];
|
let cmd = copy split[0];
|
||||||
|
|
||||||
if !cmd.is_empty() {
|
if !cmd.is_empty() {
|
||||||
let args = if len > 1 {
|
let args = if len > 1 {
|
||||||
|
@ -361,9 +358,10 @@ fn run_line(repl: &mut Repl, in: @io::Reader, out: @io::Writer, line: ~str,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let r = *repl;
|
let line = Cell(line);
|
||||||
|
let r = Cell(copy *repl);
|
||||||
let result = do task::try {
|
let result = do task::try {
|
||||||
run(r, line)
|
run(r.take(), line.take())
|
||||||
};
|
};
|
||||||
|
|
||||||
if result.is_ok() {
|
if result.is_ok() {
|
||||||
|
@ -378,7 +376,7 @@ pub fn main() {
|
||||||
let out = io::stdout();
|
let out = io::stdout();
|
||||||
let mut repl = Repl {
|
let mut repl = Repl {
|
||||||
prompt: ~"rusti> ",
|
prompt: ~"rusti> ",
|
||||||
binary: args[0],
|
binary: copy args[0],
|
||||||
running: true,
|
running: true,
|
||||||
view_items: ~"",
|
view_items: ~"",
|
||||||
lib_search_paths: ~[],
|
lib_search_paths: ~[],
|
||||||
|
|
|
@ -13,13 +13,15 @@
|
||||||
#[allow(implicit_copies)];
|
#[allow(implicit_copies)];
|
||||||
#[allow(managed_heap_memory)];
|
#[allow(managed_heap_memory)];
|
||||||
#[allow(non_camel_case_types)];
|
#[allow(non_camel_case_types)];
|
||||||
#[allow(non_implicitly_copyable_typarams)];
|
|
||||||
#[allow(owned_heap_memory)];
|
#[allow(owned_heap_memory)];
|
||||||
#[allow(path_statement)];
|
#[allow(path_statement)];
|
||||||
#[allow(unrecognized_lint)];
|
#[allow(unrecognized_lint)];
|
||||||
#[allow(unused_imports)];
|
#[allow(unused_imports)];
|
||||||
#[allow(vecs_implicitly_copyable)];
|
|
||||||
#[allow(while_true)];
|
#[allow(while_true)];
|
||||||
|
#[allow(dead_assignment)];
|
||||||
|
#[allow(unused_variable)];
|
||||||
|
#[allow(unused_unsafe)];
|
||||||
|
#[allow(unused_mut)];
|
||||||
|
|
||||||
extern mod std;
|
extern mod std;
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ pub mod rustrt {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Add a line to history
|
/// Add a line to history
|
||||||
pub unsafe fn add_history(line: ~str) -> bool {
|
pub unsafe fn add_history(line: &str) -> bool {
|
||||||
do str::as_c_str(line) |buf| {
|
do str::as_c_str(line) |buf| {
|
||||||
rustrt::linenoiseHistoryAdd(buf) == 1 as c_int
|
rustrt::linenoiseHistoryAdd(buf) == 1 as c_int
|
||||||
}
|
}
|
||||||
|
@ -40,21 +40,21 @@ pub unsafe fn set_history_max_len(len: int) -> bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Save line history to a file
|
/// Save line history to a file
|
||||||
pub unsafe fn save_history(file: ~str) -> bool {
|
pub unsafe fn save_history(file: &str) -> bool {
|
||||||
do str::as_c_str(file) |buf| {
|
do str::as_c_str(file) |buf| {
|
||||||
rustrt::linenoiseHistorySave(buf) == 1 as c_int
|
rustrt::linenoiseHistorySave(buf) == 1 as c_int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Load line history from a file
|
/// Load line history from a file
|
||||||
pub unsafe fn load_history(file: ~str) -> bool {
|
pub unsafe fn load_history(file: &str) -> bool {
|
||||||
do str::as_c_str(file) |buf| {
|
do str::as_c_str(file) |buf| {
|
||||||
rustrt::linenoiseHistoryLoad(buf) == 1 as c_int
|
rustrt::linenoiseHistoryLoad(buf) == 1 as c_int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Print out a prompt and then wait for input and return it
|
/// Print out a prompt and then wait for input and return it
|
||||||
pub unsafe fn read(prompt: ~str) -> Option<~str> {
|
pub unsafe fn read(prompt: &str) -> Option<~str> {
|
||||||
do str::as_c_str(prompt) |buf| {
|
do str::as_c_str(prompt) |buf| {
|
||||||
let line = rustrt::linenoise(buf);
|
let line = rustrt::linenoise(buf);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue