Skip to content
This repository was archived by the owner on Jun 10, 2024. It is now read-only.

Commit cd80933

Browse files
committed
Turn on warnings as errors in liblumen_eir_interpreter
Eliminate dead code warning by removing it.
1 parent ad24024 commit cd80933

File tree

7 files changed

+19
-88
lines changed

7 files changed

+19
-88
lines changed

liblumen_eir_interpreter/src/bin.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
use std::path::Path;
22

3-
use clap::{arg_enum, value_t, App, Arg, ArgMatches, SubCommand};
3+
use clap::{App, Arg};
44

55
use libeir_diagnostics::{ColorChoice, Emitter, StandardStreamEmitter};
6-
use libeir_intern::Ident;
6+
77
use libeir_ir::{FunctionIdent, Module};
8+
89
use libeir_passes::PassManager;
10+
911
use libeir_syntax_erl::ast::Module as ErlAstModule;
1012
use libeir_syntax_erl::lower_module;
1113
use libeir_syntax_erl::{Parse, ParseConfig, Parser};
1214

1315
use liblumen_eir_interpreter::{call_erlang, VM};
1416

15-
use liblumen_alloc::erts::term::{atom_unchecked, Atom, Term};
17+
use liblumen_alloc::erts::term::Atom;
18+
1619
use lumen_runtime::registry;
1720

1821
fn parse_file<T, P>(path: P, config: ParseConfig) -> (T, Parser)

liblumen_eir_interpreter/src/code.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ use std::sync::Arc;
44
use cranelift_entity::EntityRef;
55
use libeir_ir::Block;
66

7-
use liblumen_alloc::erts::exception::runtime::{Class, Exception};
87
use liblumen_alloc::erts::process::code::stack::frame::Frame;
9-
use liblumen_alloc::erts::process::code::{result_from_exception, Result};
8+
use liblumen_alloc::erts::process::code::Result;
109
use liblumen_alloc::erts::process::ProcessControlBlock;
1110
use liblumen_alloc::erts::term::{Atom, Term, TypedTerm};
1211
use liblumen_alloc::erts::ModuleFunctionArity;

liblumen_eir_interpreter/src/exec/match.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
use std::convert::TryInto;
21
use std::sync::Arc;
32

4-
use libeir_ir::{BasicType, BinaryEntrySpecifier, Block, Endianness, MatchKind, PrimOpKind};
3+
use libeir_ir::{BasicType, Block, MatchKind, PrimOpKind};
54

65
use liblumen_alloc::erts::exception::system;
76
use liblumen_alloc::erts::process::ProcessControlBlock;
8-
use liblumen_alloc::erts::term::{
9-
atom_unchecked, AsTerm, Atom, Closure, Integer, Term, Tuple, TypedTerm,
10-
};
11-
use lumen_runtime::otp::erlang;
7+
use liblumen_alloc::erts::term::TypedTerm;
128

139
use super::{CallExecutor, OpResult};
1410
use crate::module::ErlangFunction;

liblumen_eir_interpreter/src/exec/mod.rs

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use std::collections::HashMap;
22
use std::convert::TryInto;
3-
use std::rc::Rc;
43
use std::sync::Arc;
54

65
use cranelift_entity::EntityRef;
@@ -11,26 +10,14 @@ use libeir_ir::{Block, OpKind, PrimOpKind, Value, ValueKind};
1110
use liblumen_alloc::erts::exception::system;
1211
use liblumen_alloc::erts::process::code::Result;
1312
use liblumen_alloc::erts::process::ProcessControlBlock;
14-
use liblumen_alloc::erts::term::{atom_unchecked, AsTerm, Atom, Term, TypedTerm};
13+
use liblumen_alloc::erts::term::{atom_unchecked, Atom, Term, TypedTerm};
1514
use liblumen_alloc::erts::ModuleFunctionArity;
1615

1716
use crate::module::{ErlangFunction, NativeFunctionKind, ResolvedFunction};
1817
use crate::vm::VMState;
1918

2019
mod r#match;
2120

22-
#[derive(Debug)]
23-
pub struct TermCall {
24-
pub fun: Rc<Term>,
25-
pub args: Vec<Rc<Term>>,
26-
}
27-
28-
pub enum Continuation {
29-
Term(TermCall),
30-
ReturnOk(Rc<Term>),
31-
ReturnThrow(Rc<Term>, Rc<Term>, Rc<Term>),
32-
}
33-
3421
pub struct CallExecutor {
3522
binds: HashMap<Value, Term>,
3623
next_args: Vec<Term>,
@@ -306,7 +293,6 @@ impl CallExecutor {
306293
kind => unimplemented!("{:?}", kind),
307294
}
308295
}
309-
k => unimplemented!("{:?}", k),
310296
}
311297
}
312298

@@ -497,12 +483,12 @@ impl CallExecutor {
497483
OpKind::MapPut { action } => {
498484
let map_read = reads[2];
499485
if let Some(constant) = fun.fun.value_const(map_read) {
500-
if let ConstKind::Map { keys, values } = fun.fun.cons().const_kind(constant) {
486+
if let ConstKind::Map { keys, .. } = fun.fun.cons().const_kind(constant) {
501487
if keys.len(&fun.fun.cons().const_pool) == 0 {
502488
let mut vec = Vec::new();
503489

504490
let mut idx = 3;
505-
for action in action.iter() {
491+
for _ in action.iter() {
506492
let key = self.make_term(proc, fun, reads[idx])?;
507493
let val = self.make_term(proc, fun, reads[idx + 1])?;
508494
idx += 2;

liblumen_eir_interpreter/src/lib.rs

Lines changed: 4 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#![deny(warnings)]
2+
13
use std::sync::Arc;
24

35
use liblumen_alloc::erts::exception;
@@ -134,20 +136,11 @@ pub fn call_erlang(
134136
#[cfg(test)]
135137
mod tests {
136138

137-
use std::path::Path;
138-
139-
use liblumen_alloc::erts::exception;
140-
use liblumen_alloc::erts::process::{heap, next_heap_size, Status};
141-
use liblumen_alloc::erts::term::{atom_unchecked, Atom};
142-
use liblumen_alloc::erts::ModuleFunctionArity;
143-
use lumen_runtime::code::apply_fn;
139+
use liblumen_alloc::erts::term::Atom;
144140
use lumen_runtime::registry;
145-
use lumen_runtime::scheduler::Scheduler;
146-
use lumen_runtime::system;
147141

148142
use libeir_diagnostics::{ColorChoice, Emitter, StandardStreamEmitter};
149-
use libeir_intern::Ident;
150-
use libeir_ir::{FunctionIdent, Module};
143+
use libeir_ir::Module;
151144
use libeir_passes::PassManager;
152145
use libeir_syntax_erl::ast::Module as ErlAstModule;
153146
use libeir_syntax_erl::lower_module;
@@ -173,40 +166,6 @@ mod tests {
173166
panic!("parse failed");
174167
}
175168

176-
fn parse_file<T, P>(path: P, config: ParseConfig) -> (T, Parser)
177-
where
178-
T: Parse<T>,
179-
P: AsRef<Path>,
180-
{
181-
let parser = Parser::new(config);
182-
let errs = match parser.parse_file::<_, T>(path) {
183-
Ok(ast) => return (ast, parser),
184-
Err(errs) => errs,
185-
};
186-
let emitter = StandardStreamEmitter::new(ColorChoice::Auto)
187-
.set_codemap(parser.config.codemap.clone());
188-
for err in errs.iter() {
189-
emitter.diagnostic(&err.to_diagnostic()).unwrap();
190-
}
191-
panic!("parse failed");
192-
}
193-
194-
fn lower_file<P>(path: P, config: ParseConfig) -> Result<Module, ()>
195-
where
196-
P: AsRef<Path>,
197-
{
198-
let (parsed, parser): (ErlAstModule, _) = parse_file(path, config);
199-
let (res, messages) = lower_module(&parsed);
200-
201-
let emitter = StandardStreamEmitter::new(ColorChoice::Auto)
202-
.set_codemap(parser.config.codemap.clone());
203-
for err in messages.iter() {
204-
emitter.diagnostic(&err.to_diagnostic()).unwrap();
205-
}
206-
207-
res
208-
}
209-
210169
pub fn lower(input: &str, config: ParseConfig) -> Result<Module, ()> {
211170
let (parsed, parser): (ErlAstModule, _) = parse(input, config);
212171
let (res, messages) = lower_module(&parsed);

liblumen_eir_interpreter/src/module.rs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
use std::collections::HashMap;
2-
use std::rc::Rc;
32
use std::sync::Arc;
43

5-
use crate::VMState;
6-
7-
use libeir_intern::Symbol;
8-
use libeir_ir::{Function, FunctionIdent, LiveValues, Module};
4+
use libeir_ir::{Function, LiveValues, Module};
95

106
use liblumen_alloc::erts::process::code::Result;
117
use liblumen_alloc::erts::process::ProcessControlBlock;
@@ -81,11 +77,6 @@ impl ModuleRegistry {
8177
}
8278
}
8379

84-
pub enum NativeReturn {
85-
Return { term: Rc<Term> },
86-
Throw { typ: Rc<Term>, reason: Rc<Term> },
87-
}
88-
8980
#[derive(Copy, Clone)]
9081
pub enum NativeFunctionKind {
9182
Simple(fn(&Arc<ProcessControlBlock>, &[Term]) -> std::result::Result<Term, ()>),

liblumen_eir_interpreter/src/vm.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
use std::cell::RefCell;
2-
use std::collections::HashMap;
31
use std::rc::Rc;
42
use std::sync::{Arc, RwLock};
53

6-
use libeir_intern::Symbol;
7-
use libeir_ir::{FunctionIdent, Module};
4+
use libeir_ir::FunctionIdent;
85

96
use liblumen_alloc::erts::exception;
107
use liblumen_alloc::erts::process::{heap, next_heap_size, Status};
@@ -13,7 +10,7 @@ use lumen_runtime::registry;
1310
use lumen_runtime::scheduler::Scheduler;
1411
use lumen_runtime::system;
1512

16-
use super::module::{ErlangModule, ModuleRegistry, ModuleType, NativeModule};
13+
use super::module::ModuleRegistry;
1714

1815
pub struct VMState {
1916
pub modules: RwLock<ModuleRegistry>,

0 commit comments

Comments
 (0)