Skip to content

Commit 045976c

Browse files
authored
perf: reduce vec allocations and sorting (#226)
1 parent e36cfbf commit 045976c

File tree

13 files changed

+298
-298
lines changed

13 files changed

+298
-298
lines changed

crates/lintspec-core/src/definitions/constructor.rs

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -52,25 +52,21 @@ impl Validate for ConstructorDefinition {
5252
span: self.span(),
5353
diags: vec![],
5454
};
55-
out.diags.extend(
56-
CheckNoticeAndDev::builder()
57-
.natspec(&self.natspec)
58-
.notice_rule(opts.notice)
59-
.dev_rule(opts.dev)
60-
.notice_or_dev(options.notice_or_dev)
61-
.span(&self.span)
62-
.build()
63-
.check(),
64-
);
65-
out.diags.extend(
66-
CheckParams::builder()
67-
.natspec(&self.natspec)
68-
.rule(opts.param)
69-
.params(&self.params)
70-
.default_span(self.span())
71-
.build()
72-
.check(),
73-
);
55+
CheckNoticeAndDev::builder()
56+
.natspec(&self.natspec)
57+
.notice_rule(opts.notice)
58+
.dev_rule(opts.dev)
59+
.notice_or_dev(options.notice_or_dev)
60+
.span(&self.span)
61+
.build()
62+
.check_into(&mut out.diags);
63+
CheckParams::builder()
64+
.natspec(&self.natspec)
65+
.rule(opts.param)
66+
.params(&self.params)
67+
.default_span(self.span())
68+
.build()
69+
.check_into(&mut out.diags);
7470
out
7571
}
7672
}

crates/lintspec-core/src/definitions/contract.rs

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -50,32 +50,26 @@ impl Validate for ContractDefinition {
5050
span: self.span(),
5151
diags: vec![],
5252
};
53-
out.diags.extend(
54-
CheckTitle::builder()
55-
.natspec(&self.natspec)
56-
.rule(opts.title)
57-
.span(&self.span)
58-
.build()
59-
.check(),
60-
);
61-
out.diags.extend(
62-
CheckAuthor::builder()
63-
.natspec(&self.natspec)
64-
.rule(opts.author)
65-
.span(&self.span)
66-
.build()
67-
.check(),
68-
);
69-
out.diags.extend(
70-
CheckNoticeAndDev::builder()
71-
.natspec(&self.natspec)
72-
.notice_rule(opts.notice)
73-
.dev_rule(opts.dev)
74-
.notice_or_dev(options.notice_or_dev)
75-
.span(&self.span)
76-
.build()
77-
.check(),
78-
);
53+
CheckTitle::builder()
54+
.natspec(&self.natspec)
55+
.rule(opts.title)
56+
.span(&self.span)
57+
.build()
58+
.check_into(&mut out.diags);
59+
CheckAuthor::builder()
60+
.natspec(&self.natspec)
61+
.rule(opts.author)
62+
.span(&self.span)
63+
.build()
64+
.check_into(&mut out.diags);
65+
CheckNoticeAndDev::builder()
66+
.natspec(&self.natspec)
67+
.notice_rule(opts.notice)
68+
.dev_rule(opts.dev)
69+
.notice_or_dev(options.notice_or_dev)
70+
.span(&self.span)
71+
.build()
72+
.check_into(&mut out.diags);
7973
out
8074
}
8175
}

crates/lintspec-core/src/definitions/enumeration.rs

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,25 +56,21 @@ impl Validate for EnumDefinition {
5656
span: self.span(),
5757
diags: vec![],
5858
};
59-
out.diags.extend(
60-
CheckNoticeAndDev::builder()
61-
.natspec(&self.natspec)
62-
.notice_rule(opts.notice)
63-
.dev_rule(opts.dev)
64-
.notice_or_dev(options.notice_or_dev)
65-
.span(&self.span)
66-
.build()
67-
.check(),
68-
);
69-
out.diags.extend(
70-
CheckParams::builder()
71-
.natspec(&self.natspec)
72-
.rule(opts.param)
73-
.params(&self.members)
74-
.default_span(self.span())
75-
.build()
76-
.check(),
77-
);
59+
CheckNoticeAndDev::builder()
60+
.natspec(&self.natspec)
61+
.notice_rule(opts.notice)
62+
.dev_rule(opts.dev)
63+
.notice_or_dev(options.notice_or_dev)
64+
.span(&self.span)
65+
.build()
66+
.check_into(&mut out.diags);
67+
CheckParams::builder()
68+
.natspec(&self.natspec)
69+
.rule(opts.param)
70+
.params(&self.members)
71+
.default_span(self.span())
72+
.build()
73+
.check_into(&mut out.diags);
7874
out
7975
}
8076
}

crates/lintspec-core/src/definitions/error.rs

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,25 +56,21 @@ impl Validate for ErrorDefinition {
5656
span: self.span(),
5757
diags: vec![],
5858
};
59-
out.diags.extend(
60-
CheckNoticeAndDev::builder()
61-
.natspec(&self.natspec)
62-
.notice_rule(opts.notice)
63-
.dev_rule(opts.dev)
64-
.notice_or_dev(options.notice_or_dev)
65-
.span(&self.span)
66-
.build()
67-
.check(),
68-
);
69-
out.diags.extend(
70-
CheckParams::builder()
71-
.natspec(&self.natspec)
72-
.rule(opts.param)
73-
.params(&self.params)
74-
.default_span(self.span())
75-
.build()
76-
.check(),
77-
);
59+
CheckNoticeAndDev::builder()
60+
.natspec(&self.natspec)
61+
.notice_rule(opts.notice)
62+
.dev_rule(opts.dev)
63+
.notice_or_dev(options.notice_or_dev)
64+
.span(&self.span)
65+
.build()
66+
.check_into(&mut out.diags);
67+
CheckParams::builder()
68+
.natspec(&self.natspec)
69+
.rule(opts.param)
70+
.params(&self.params)
71+
.default_span(self.span())
72+
.build()
73+
.check_into(&mut out.diags);
7874
out
7975
}
8076
}

crates/lintspec-core/src/definitions/event.rs

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,25 +56,21 @@ impl Validate for EventDefinition {
5656
span: self.span(),
5757
diags: vec![],
5858
};
59-
out.diags.extend(
60-
CheckNoticeAndDev::builder()
61-
.natspec(&self.natspec)
62-
.notice_rule(opts.notice)
63-
.dev_rule(opts.dev)
64-
.notice_or_dev(options.notice_or_dev)
65-
.span(&self.span)
66-
.build()
67-
.check(),
68-
);
69-
out.diags.extend(
70-
CheckParams::builder()
71-
.natspec(&self.natspec)
72-
.rule(opts.param)
73-
.params(&self.params)
74-
.default_span(self.span())
75-
.build()
76-
.check(),
77-
);
59+
CheckNoticeAndDev::builder()
60+
.natspec(&self.natspec)
61+
.notice_rule(opts.notice)
62+
.dev_rule(opts.dev)
63+
.notice_or_dev(options.notice_or_dev)
64+
.span(&self.span)
65+
.build()
66+
.check_into(&mut out.diags);
67+
CheckParams::builder()
68+
.natspec(&self.natspec)
69+
.rule(opts.param)
70+
.params(&self.params)
71+
.default_span(self.span())
72+
.build()
73+
.check_into(&mut out.diags);
7874
out
7975
}
8076
}

crates/lintspec-core/src/definitions/function.rs

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -113,35 +113,29 @@ impl Validate for FunctionDefinition {
113113
});
114114
return out;
115115
}
116-
out.diags.extend(
117-
CheckNoticeAndDev::builder()
118-
.natspec(&self.natspec)
119-
.notice_rule(opts.notice)
120-
.dev_rule(opts.dev)
121-
.notice_or_dev(options.notice_or_dev)
122-
.span(&self.span)
123-
.build()
124-
.check(),
125-
);
126-
out.diags.extend(
127-
CheckParams::builder()
128-
.natspec(&self.natspec)
129-
.rule(opts.param)
130-
.params(&self.params)
131-
.default_span(self.span())
132-
.build()
133-
.check(),
134-
);
135-
out.diags.extend(
136-
CheckReturns::builder()
137-
.natspec(&self.natspec)
138-
.rule(opts.returns)
139-
.returns(&self.returns)
140-
.default_span(self.span())
141-
.is_var(false)
142-
.build()
143-
.check(),
144-
);
116+
CheckNoticeAndDev::builder()
117+
.natspec(&self.natspec)
118+
.notice_rule(opts.notice)
119+
.dev_rule(opts.dev)
120+
.notice_or_dev(options.notice_or_dev)
121+
.span(&self.span)
122+
.build()
123+
.check_into(&mut out.diags);
124+
CheckParams::builder()
125+
.natspec(&self.natspec)
126+
.rule(opts.param)
127+
.params(&self.params)
128+
.default_span(self.span())
129+
.build()
130+
.check_into(&mut out.diags);
131+
CheckReturns::builder()
132+
.natspec(&self.natspec)
133+
.rule(opts.returns)
134+
.returns(&self.returns)
135+
.default_span(self.span())
136+
.is_var(false)
137+
.build()
138+
.check_into(&mut out.diags);
145139
out
146140
}
147141
}

crates/lintspec-core/src/definitions/interface.rs

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -50,32 +50,26 @@ impl Validate for InterfaceDefinition {
5050
span: self.span(),
5151
diags: vec![],
5252
};
53-
out.diags.extend(
54-
CheckTitle::builder()
55-
.natspec(&self.natspec)
56-
.rule(opts.title)
57-
.span(&self.span)
58-
.build()
59-
.check(),
60-
);
61-
out.diags.extend(
62-
CheckAuthor::builder()
63-
.natspec(&self.natspec)
64-
.rule(opts.author)
65-
.span(&self.span)
66-
.build()
67-
.check(),
68-
);
69-
out.diags.extend(
70-
CheckNoticeAndDev::builder()
71-
.natspec(&self.natspec)
72-
.notice_rule(opts.notice)
73-
.dev_rule(opts.dev)
74-
.notice_or_dev(options.notice_or_dev)
75-
.span(&self.span)
76-
.build()
77-
.check(),
78-
);
53+
CheckTitle::builder()
54+
.natspec(&self.natspec)
55+
.rule(opts.title)
56+
.span(&self.span)
57+
.build()
58+
.check_into(&mut out.diags);
59+
CheckAuthor::builder()
60+
.natspec(&self.natspec)
61+
.rule(opts.author)
62+
.span(&self.span)
63+
.build()
64+
.check_into(&mut out.diags);
65+
CheckNoticeAndDev::builder()
66+
.natspec(&self.natspec)
67+
.notice_rule(opts.notice)
68+
.dev_rule(opts.dev)
69+
.notice_or_dev(options.notice_or_dev)
70+
.span(&self.span)
71+
.build()
72+
.check_into(&mut out.diags);
7973
out
8074
}
8175
}

crates/lintspec-core/src/definitions/library.rs

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -50,32 +50,26 @@ impl Validate for LibraryDefinition {
5050
span: self.span(),
5151
diags: vec![],
5252
};
53-
out.diags.extend(
54-
CheckTitle::builder()
55-
.natspec(&self.natspec)
56-
.rule(opts.title)
57-
.span(&self.span)
58-
.build()
59-
.check(),
60-
);
61-
out.diags.extend(
62-
CheckAuthor::builder()
63-
.natspec(&self.natspec)
64-
.rule(opts.author)
65-
.span(&self.span)
66-
.build()
67-
.check(),
68-
);
69-
out.diags.extend(
70-
CheckNoticeAndDev::builder()
71-
.natspec(&self.natspec)
72-
.notice_rule(opts.notice)
73-
.dev_rule(opts.dev)
74-
.notice_or_dev(options.notice_or_dev)
75-
.span(&self.span)
76-
.build()
77-
.check(),
78-
);
53+
CheckTitle::builder()
54+
.natspec(&self.natspec)
55+
.rule(opts.title)
56+
.span(&self.span)
57+
.build()
58+
.check_into(&mut out.diags);
59+
CheckAuthor::builder()
60+
.natspec(&self.natspec)
61+
.rule(opts.author)
62+
.span(&self.span)
63+
.build()
64+
.check_into(&mut out.diags);
65+
CheckNoticeAndDev::builder()
66+
.natspec(&self.natspec)
67+
.notice_rule(opts.notice)
68+
.dev_rule(opts.dev)
69+
.notice_or_dev(options.notice_or_dev)
70+
.span(&self.span)
71+
.build()
72+
.check_into(&mut out.diags);
7973
out
8074
}
8175
}

0 commit comments

Comments
 (0)