Skip to content

Commit e3250d8

Browse files
userFRMclaude
andcommitted
fix: generate opt_number only when actually needed (no allow dead_code)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 36e8f38 commit e3250d8

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

crates/thetadatadx/build.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,13 @@ fn generate_parser(out: &mut String, type_name: &str, def: &TickTypeDef) {
138138
}
139139

140140
// Determine which columns need the opt_number helper
141-
let needs_opt_number = def
142-
.columns
143-
.iter()
144-
.any(|c| c.r#type == "i32" && !def.required.contains(&c.name) && c.price_source.is_none());
141+
let needs_opt_number = def.columns.iter().any(|c| {
142+
(c.r#type == "i32"
143+
&& !def.required.contains(&c.name)
144+
&& c.price_source.is_none()
145+
&& c.field != "date")
146+
|| c.price_source.is_some() // price_source fallback uses opt_number
147+
});
145148
let needs_opt_float = def
146149
.columns
147150
.iter()
@@ -154,7 +157,6 @@ fn generate_parser(out: &mut String, type_name: &str, def: &TickTypeDef) {
154157
// Emit opt_number / opt_float / opt_i64 helpers (non-eod only)
155158
if !def.eod_style {
156159
if needs_opt_number {
157-
out.push_str(" #[allow(dead_code)]\n");
158160
out.push_str(" fn opt_number(row: &crate::proto::DataValueList, idx: Option<usize>) -> i32 {\n");
159161
out.push_str(" match idx {\n");
160162
out.push_str(" Some(i) => row_number(row, i),\n");

0 commit comments

Comments
 (0)