Skip to content

Commit 5793f8d

Browse files
committed
Cleanup type inference
1 parent f1d95b0 commit 5793f8d

18 files changed

+44
-46
lines changed

src/year2020/day09.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ pub fn part2(input: &Result) -> u64 {
2424
}
2525

2626
pub fn decrypt<const N: usize>(input: &str) -> Result {
27-
let numbers: Vec<u64> = input.iter_unsigned().collect();
27+
let numbers: Vec<_> = input.iter_unsigned().collect();
2828

2929
let invalid = numbers
3030
.windows(N + 1)

src/year2020/day13.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ pub struct Input {
1818
pub fn parse(input: &str) -> Input {
1919
let lines: Vec<_> = input.lines().collect();
2020
let timestamp = lines[0].unsigned();
21-
let buses: Vec<(usize, usize)> = lines[1]
21+
let buses: Vec<_> = lines[1]
2222
.split(',')
2323
.enumerate()
2424
.filter(|&(_, id)| id != "x")

src/year2020/day15.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ fn play(input: &[usize], rounds: usize) -> usize {
3333
let mut last = input[size];
3434

3535
let mut spoken_low = vec![0; rounds.min(THRESHOLD)];
36-
let mut spoken_high: FastMap<u32, u32> = FastMapBuilder::with_capacity(rounds / 5);
36+
let mut spoken_high = FastMapBuilder::with_capacity(rounds / 5);
3737

3838
for i in 0..size {
3939
spoken_low[input[i]] = (i + 1) as u32;

src/year2020/day21.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ pub fn part2(input: &Input) -> String {
114114
.filter(|(_, v)| v.candidates.count_ones() == 1)
115115
.map(|(k, v)| (*k, v.candidates))
116116
.collect();
117-
let mut done: Vec<_> = vec![];
117+
let mut done = Vec::new();
118118

119119
// Eliminate known allergens from other ingredients.
120120
while let Some(pair @ (next, allergen)) = todo.pop() {

src/year2021/day10.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub fn parse(input: &str) -> Vec<&[u8]> {
1313
}
1414

1515
pub fn part1(input: &[&[u8]]) -> u64 {
16-
let mut stack: Vec<u8> = Vec::new();
16+
let mut stack = Vec::new();
1717
let mut score = 0;
1818

1919
for line in input {
@@ -25,7 +25,7 @@ pub fn part1(input: &[&[u8]]) -> u64 {
2525
}
2626

2727
pub fn part2(input: &[&[u8]]) -> u64 {
28-
let mut stack: Vec<u8> = Vec::new();
28+
let mut stack = Vec::new();
2929
let mut scores = Vec::new();
3030

3131
for line in input {

src/year2022/day05.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ type Input = (Stack, Vec<Move>);
3030
/// [`chunk`]: ChunkOps::chunk
3131
pub fn parse(input: &str) -> Input {
3232
let (prefix, suffix) = input.split_once("\n\n").unwrap();
33-
let lines: Vec<&str> = prefix.lines().collect();
33+
let lines: Vec<_> = prefix.lines().collect();
3434
let width = (lines[0].len() + 1) / 4;
3535

3636
let mut stack: Stack = vec![Vec::new(); width];
@@ -42,7 +42,7 @@ pub fn parse(input: &str) -> Input {
4242
}
4343
}
4444

45-
let moves: Vec<Move> = suffix
45+
let moves: Vec<_> = suffix
4646
.iter_unsigned()
4747
.chunk::<3>()
4848
.map(|[amount, from, to]| [amount, from - 1, to - 1])
@@ -70,7 +70,7 @@ pub fn part2(input: &Input) -> String {
7070
fn play(input: &Input, reverse: bool) -> String {
7171
let (initial, moves) = input;
7272
let mut stack = initial.clone();
73-
let mut crates: Vec<char> = Vec::new();
73+
let mut crates = Vec::new();
7474

7575
for &[amount, from, to] in moves {
7676
let start = stack[from].len() - amount;

src/year2022/day07.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ use crate::util::parse::*;
4040
pub fn parse(input: &str) -> Vec<u32> {
4141
let mut cd = false;
4242
let mut total = 0;
43-
let mut stack: Vec<u32> = vec![];
44-
let mut sizes: Vec<u32> = vec![];
43+
let mut stack = Vec::new();
44+
let mut sizes = Vec::new();
4545

4646
for token in input.split_ascii_whitespace() {
4747
if cd {

src/year2022/day08.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ pub fn parse(input: &str) -> Input {
5757
/// so they're added directly to the total.
5858
pub fn part1(input: &Input) -> usize {
5959
let (width, digits) = input;
60-
let mut visible: Vec<bool> = vec![false; digits.len()];
60+
let mut visible = vec![false; digits.len()];
6161

6262
for i in 1..(*width - 1) {
6363
let mut left_max = -1;

src/year2022/day10.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::util::parse::*;
55
/// instruction timing. Produces a `vec` of the absolute values of `x` from cycle 0 to 241.
66
pub fn parse(input: &str) -> Vec<i32> {
77
let mut x = 1;
8-
let mut xs: Vec<i32> = vec![1];
8+
let mut xs = vec![1];
99

1010
for token in input.split_ascii_whitespace() {
1111
match token {

src/year2022/day11.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ pub fn parse(input: &str) -> Vec<Monkey> {
6262
/// Inner helper function to keep the parsing logic readable.
6363
fn helper(chunk: &[&str]) -> Monkey {
6464
let items = chunk[1].iter_unsigned().collect();
65-
let tokens: Vec<&str> = chunk[2].split(' ').rev().take(2).collect();
65+
let tokens: Vec<_> = chunk[2].split(' ').rev().take(2).collect();
6666
let operation = match tokens[..] {
6767
["old", _] => Operation::Square,
6868
[y, "*"] => Operation::Multiply(y.unsigned()),

src/year2022/day15.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ pub fn part1_testable(input: &[Input], row: i32) -> i32 {
3636
(beacon.y == row).then_some(beacon.x)
3737
}
3838

39-
let mut ranges: Vec<Range<i32>> = input.iter().filter_map(|i| build_range(i, row)).collect();
39+
let mut ranges: Vec<_> = input.iter().filter_map(|i| build_range(i, row)).collect();
4040
ranges.sort_unstable_by(|a, b| a.start.cmp(&b.start));
4141

4242
let mut total = 0;
@@ -52,7 +52,7 @@ pub fn part1_testable(input: &[Input], row: i32) -> i32 {
5252
}
5353
}
5454

55-
let beacons: FastSet<i32> = input.iter().filter_map(|i| build_beacons(i, row)).collect();
55+
let beacons: FastSet<_> = input.iter().filter_map(|i| build_beacons(i, row)).collect();
5656
total - (beacons.len() as i32)
5757
}
5858

@@ -61,10 +61,10 @@ pub fn part2(input: &[Input]) -> u64 {
6161
}
6262

6363
pub fn part2_testable(input: &[Input], size: i32) -> u64 {
64-
let mut top: FastSet<i32> = FastSetBuilder::empty();
65-
let mut left: FastSet<i32> = FastSetBuilder::empty();
66-
let mut bottom: FastSet<i32> = FastSetBuilder::empty();
67-
let mut right: FastSet<i32> = FastSetBuilder::empty();
64+
let mut top = FastSetBuilder::empty();
65+
let mut left = FastSetBuilder::empty();
66+
let mut bottom = FastSetBuilder::empty();
67+
let mut right = FastSetBuilder::empty();
6868

6969
// Rotate points clockwise by 45 degrees, scale by √2 and extend edge by 1.
7070
// This transform each sensor into an axis aligned bounding box.
@@ -77,8 +77,8 @@ pub fn part2_testable(input: &[Input], size: i32) -> u64 {
7777
right.insert(sensor.x - sensor.y + manhattan + 1);
7878
}
7979

80-
let horizontal: Vec<&i32> = top.intersection(&bottom).collect();
81-
let vertical: Vec<&i32> = left.intersection(&right).collect();
80+
let horizontal: Vec<_> = top.intersection(&bottom).collect();
81+
let vertical: Vec<_> = left.intersection(&right).collect();
8282
let range = 0..(size + 1);
8383

8484
for x in &vertical {

src/year2022/day16.rs

+5-6
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ pub struct Valve<'a> {
2626

2727
impl Valve<'_> {
2828
fn parse(line: &str) -> Valve {
29-
let mut tokens: Vec<&str> = line
29+
let mut tokens: Vec<_> = line
3030
.split(|c: char| !c.is_ascii_uppercase() && !c.is_ascii_digit())
3131
.filter(|s| !s.is_empty())
3232
.collect();
@@ -47,13 +47,12 @@ impl Valve<'_> {
4747
}
4848

4949
pub fn parse(input: &str) -> Input {
50-
let mut valves: Vec<Valve> = input.lines().map(Valve::parse).collect();
50+
let mut valves: Vec<_> = input.lines().map(Valve::parse).collect();
5151
valves.sort_unstable_by(Valve::cmp);
5252

5353
let size = valves.iter().filter(|v| v.flow > 0).count() + 1;
5454
let mut distance = vec![u32::MAX; size * size];
55-
let indices: FastMap<&str, usize> =
56-
valves.iter().enumerate().map(|(i, v)| (v.name, i)).collect();
55+
let indices: FastMap<_, _> = valves.iter().enumerate().map(|(i, v)| (v.name, i)).collect();
5756

5857
// Eliminate zero valves
5958
for (from, valve) in valves.iter().enumerate().take(size) {
@@ -89,7 +88,7 @@ pub fn parse(input: &str) -> Input {
8988
}
9089

9190
let todo = (1 << (size - 1)) - 1;
92-
let flow: Vec<u32> = valves.iter().take(size).map(|v| v.flow).collect();
91+
let flow: Vec<_> = valves.iter().take(size).map(|v| v.flow).collect();
9392
distance.iter_mut().for_each(|d| *d += 1);
9493

9594
Input { size, todo, flow, distance }
@@ -172,7 +171,7 @@ pub fn part2(input: &Input) -> u32 {
172171
}
173172

174173
let mut result = 0;
175-
let mut visited: Vec<bool> = score.iter().map(|&s| s > 0).collect();
174+
let mut visited: Vec<_> = score.iter().map(|&s| s > 0).collect();
176175
subsets(input.todo, &mut score, &mut visited);
177176

178177
for (i, you) in score.iter().enumerate() {

src/year2022/day17.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ pub fn part1(input: &[u8]) -> usize {
8080

8181
pub fn part2(input: &[u8]) -> usize {
8282
let guess = 1000;
83-
let height: Vec<usize> = State::new(input).take(5 * guess).collect();
84-
let deltas: Vec<usize> = height
83+
let height: Vec<_> = State::new(input).take(5 * guess).collect();
84+
let deltas: Vec<_> = height
8585
.iter()
8686
.scan(0, |state, &height| {
8787
let delta = height - *state;

src/year2022/day20.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ struct Tree {
1717
impl Tree {
1818
fn from(input: &[i64]) -> Tree {
1919
let len = input.len();
20-
let mut nodes: Vec<Node> = Vec::with_capacity(len * 2);
21-
let mut todo: VecDeque<u16> = VecDeque::with_capacity(len);
22-
let mut next: VecDeque<u16> = VecDeque::with_capacity(len);
20+
let mut nodes = Vec::with_capacity(len * 2);
21+
let mut todo = VecDeque::with_capacity(len);
22+
let mut next = VecDeque::with_capacity(len);
2323

2424
for i in 0..len {
2525
nodes.push(Node { size: 1, left: u16::MAX, right: u16::MAX, up: u16::MAX });

src/year2022/day21.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,10 @@ pub struct Input {
4343
pub fn parse(input: &str) -> Input {
4444
let lines: Vec<_> = input.lines().collect();
4545

46-
let indices: FastMap<&str, usize> =
46+
let indices: FastMap<_, _> =
4747
lines.iter().enumerate().map(|(index, line)| (&line[0..4], index)).collect();
4848

49-
let monkeys: Vec<Monkey> =
50-
lines.iter().map(|line| Monkey::parse(&line[6..], &indices)).collect();
49+
let monkeys: Vec<_> = lines.iter().map(|line| Monkey::parse(&line[6..], &indices)).collect();
5150

5251
let root = indices["root"];
5352
let humn = indices["humn"];

src/year2022/day22.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ pub fn part2(input: &Input) -> i32 {
185185
}
186186

187187
fn parse_grid(input: &str) -> Grid {
188-
let raw: Vec<&[u8]> = input.lines().map(str::as_bytes).collect();
188+
let raw: Vec<_> = input.lines().map(str::as_bytes).collect();
189189
let width = raw.iter().map(|line| line.len()).max().unwrap();
190190
let height = raw.len();
191191
let mut tiles = vec![Tile::None; width * height];
@@ -207,7 +207,7 @@ fn parse_grid(input: &str) -> Grid {
207207
}
208208

209209
fn parse_moves(input: &str) -> Vec<Move> {
210-
let mut moves: Vec<Move> = Vec::new();
210+
let mut moves = Vec::new();
211211

212212
for token in input.replace('L', " L ").replace('R', " R ").trim().split(' ') {
213213
let next = match token {

src/year2022/day23.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ pub struct Input {
104104

105105
pub fn parse(input: &str) -> Input {
106106
let offset = 70;
107-
let raw: Vec<&[u8]> = input.lines().map(str::as_bytes).collect();
107+
let raw: Vec<_> = input.lines().map(str::as_bytes).collect();
108108
let default = [U256::default(); HEIGHT];
109109
let mut grid = default;
110110

src/year2022/day24.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ pub struct Input {
66
}
77

88
pub fn parse(input: &str) -> Input {
9-
let raw: Vec<&[u8]> = input
9+
let raw: Vec<_> = input
1010
.lines()
1111
.map(|line| {
1212
let bytes = line.as_bytes();
@@ -16,14 +16,14 @@ pub fn parse(input: &str) -> Input {
1616

1717
let width = raw[0].len();
1818
let height = raw.len() - 2;
19-
let build = |kind| {
19+
let build = |kind| -> Vec<_> {
2020
let fold = |row: &&[u8]| row.iter().fold(0, |acc, &b| (acc << 1) | (b != kind) as u128);
2121
raw[1..=height].iter().map(fold).collect()
2222
};
23-
let left: Vec<u128> = build(b'<');
24-
let right: Vec<u128> = build(b'>');
25-
let up: Vec<u128> = build(b'^');
26-
let down: Vec<u128> = build(b'v');
23+
let left = build(b'<');
24+
let right = build(b'>');
25+
let up = build(b'^');
26+
let down = build(b'v');
2727

2828
let mut horizontal = Vec::with_capacity(width * height);
2929
for time in 0..width {
@@ -59,7 +59,7 @@ pub fn part2(input: &Input) -> usize {
5959
fn expedition(input: &Input, start: usize, forward: bool) -> usize {
6060
let Input { width, height, horizontal, vertical } = input;
6161
let mut time = start;
62-
let mut state: Vec<u128> = vec![0; height + 1];
62+
let mut state = vec![0; height + 1];
6363

6464
loop {
6565
time += 1;

0 commit comments

Comments
 (0)