Skip to content

Commit 9dac49b

Browse files
authored
Merge pull request #254 from lnicola/dont-derive-new
Implement constructors manually instead of using derive-new
2 parents c7640c7 + 86a85b4 commit 9dac49b

File tree

5 files changed

+14
-8
lines changed

5 files changed

+14
-8
lines changed

Cargo.lock

-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ edition = "2018"
1313
bench = []
1414

1515
[dependencies]
16-
derive-new = "0.5.6"
1716
diff = "0.1.11"
1817
docopt = "1.0.0"
1918
failure = "0.1"

chalk-solve/Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ keywords = ["compiler", "traits", "prolog"]
1010
edition = "2018"
1111

1212
[dependencies]
13-
derive-new = "0.5.6"
1413
ena = "0.13.0"
1514
itertools = "0.8.0"
1615
petgraph = "0.4.13"

chalk-solve/src/coherence.rs

+9-2
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@ use petgraph::prelude::*;
33
use crate::solve::SolverChoice;
44
use crate::RustIrDatabase;
55
use chalk_ir::{self, Identifier, ImplId, TraitId};
6-
use derive_new::new;
76
use std::collections::BTreeMap;
87
use std::fmt;
98
use std::sync::Arc;
109

1110
pub mod orphan;
1211
mod solve;
1312

14-
#[derive(new)]
1513
pub struct CoherenceSolver<'db, DB>
1614
where
1715
DB: RustIrDatabase,
@@ -73,6 +71,15 @@ impl<'db, DB> CoherenceSolver<'db, DB>
7371
where
7472
DB: RustIrDatabase,
7573
{
74+
/// Constructs a new `CoherenceSolver`.
75+
pub fn new(db: &'db DB, solver_choice: SolverChoice, trait_id: TraitId) -> Self {
76+
Self {
77+
db,
78+
solver_choice,
79+
trait_id,
80+
}
81+
}
82+
7683
pub fn specialization_priorities(
7784
&self,
7885
) -> Result<Arc<SpecializationPriorities>, CoherenceError> {

chalk-solve/src/wf.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ use chalk_ir::fold::shift::Shift;
88
use chalk_ir::fold::*;
99
use chalk_ir::*;
1010
use chalk_rust_ir::*;
11-
use derive_new::new;
1211
use itertools::Itertools;
1312

1413
#[derive(Debug)]
@@ -36,7 +35,6 @@ impl fmt::Display for WfError {
3635

3736
impl std::error::Error for WfError {}
3837

39-
#[derive(new)]
4038
pub struct WfSolver<'db, DB: RustIrDatabase> {
4139
db: &'db DB,
4240
solver_choice: SolverChoice,
@@ -122,6 +120,11 @@ impl<'db, DB> WfSolver<'db, DB>
122120
where
123121
DB: RustIrDatabase,
124122
{
123+
/// Constructs a new `WfSolver`.
124+
pub fn new(db: &'db DB, solver_choice: SolverChoice) -> Self {
125+
Self { db, solver_choice }
126+
}
127+
125128
pub fn verify_struct_decl(&self, struct_id: StructId) -> Result<(), WfError> {
126129
let struct_datum = self.db.struct_datum(struct_id);
127130

0 commit comments

Comments
 (0)