Skip to content

Commit f837bf8

Browse files
committed
test: correct 21 checker_lowering snapshots to match the read-param fix (verified green)
The read-param fix (1df5c48) removes a latent double-borrow: a read-PARAM lowers to &T, so passing it as a read arg must be `f(x)`, not `f(&x)` (=&&T, which never compiled). 21 checker_lowering snapshot tests had encoded the buggy &<read-param> output; corrected each to the right output (read-params drop the extra &; owned locals + string literals keep it), classified against each test's source. Full suite green: checker_lowering 212/0, parity suite (compiles+runs generated Rust) 112/0, lib 193/0, all targets 0 failed. Corrects an earlier erroneous 'tests green' claim for 1df5c48. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 1df5c48 commit f837bf8

1 file changed

Lines changed: 42 additions & 42 deletions

File tree

crates/rsscript/tests/checker_lowering.rs

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -908,8 +908,8 @@ fn copy_file(input: read Path, output: read Path) -> Result<Unit, FileError> {
908908
let rust = lower_source_to_rust("file.rss", source).expect("source should lower");
909909

910910
assert!(rust.contains("-> Result<(), rsscript_runtime::FileError>"));
911-
assert!(rust.contains("let mut reader = rsscript_runtime::file_open_read(&input)?;"));
912-
assert!(rust.contains("let mut writer = rsscript_runtime::file_open_write(&output)?;"));
911+
assert!(rust.contains("let mut reader = rsscript_runtime::file_open_read(input)?;"));
912+
assert!(rust.contains("let mut writer = rsscript_runtime::file_open_write(output)?;"));
913913
assert!(rust.contains("let bytes = rsscript_runtime::file_read_all(&mut reader)?;"));
914914
assert!(rust.contains("let text = rsscript_runtime::file_read_all_string(&mut reader)?;"));
915915
assert!(rust.contains("rsscript_runtime::file_write(&mut writer, &bytes)?;"));
@@ -1121,7 +1121,7 @@ fn read_name(text: read String) -> Result<String, JsonError> {
11211121
let rust = lower_source_to_rust("json.rss", source).expect("source should lower");
11221122

11231123
assert!(rust.contains("-> Result<String, rsscript_runtime::JsonError>"));
1124-
assert!(rust.contains("let value = rsscript_runtime::json_parse(&text)?;"));
1124+
assert!(rust.contains("let value = rsscript_runtime::json_parse(text)?;"));
11251125
assert!(rust.contains("let value_from_file = rsscript_runtime::json_parse_file(&path)?;"));
11261126
assert!(rust.contains(
11271127
"let literal_value = rsscript_runtime::json_value(&rsscript_runtime::json_object"
@@ -1180,7 +1180,7 @@ fn read_name(text: read String) -> Result<String, JsonError> {
11801180
assert!(rust.contains("let text = rsscript_runtime::json_as_string(&item)?;"));
11811181
assert!(
11821182
rust.contains(
1183-
"return Ok(rsscript_runtime::string_starts_with(&text, &\"pro\".to_string()));"
1183+
"return Ok(rsscript_runtime::string_starts_with(text, &\"pro\".to_string()));"
11841184
)
11851185
);
11861186
assert!(rust.contains(
@@ -1190,10 +1190,10 @@ fn read_name(text: read String) -> Result<String, JsonError> {
11901190
rust.contains("let profile_name = rsscript_runtime::json_as_string(&profile_name_value)?;")
11911191
);
11921192
assert!(rust.contains(
1193-
"let profile_name_at = rsscript_runtime::json_string_at(&text, &\"profile.name\".to_string())?;"
1193+
"let profile_name_at = rsscript_runtime::json_string_at(text, &\"profile.name\".to_string())?;"
11941194
));
11951195
assert!(rust.contains(
1196-
"let missing_name = rsscript_runtime::json_string_at_or(&text, &\"profile.missing\".to_string(), &\"unknown\".to_string());"
1196+
"let missing_name = rsscript_runtime::json_string_at_or(text, &\"profile.missing\".to_string(), &\"unknown\".to_string());"
11971197
));
11981198
assert!(
11991199
rust.contains(
@@ -1374,7 +1374,7 @@ fn read_name(path: read Path) -> Result<String, CsvError> {
13741374

13751375
assert!(rust.contains("-> Result<String, rsscript_runtime::CsvError>"));
13761376
assert!(rust.contains("let mut buffer = rsscript_runtime::row_buffer_new(4096i64);"));
1377-
assert!(rust.contains("let mut file = rsscript_runtime::csv_open_read(&path)?;"));
1377+
assert!(rust.contains("let mut file = rsscript_runtime::csv_open_read(path)?;"));
13781378
assert!(rust.contains("rsscript_runtime::csv_read_into(&mut file, &mut buffer)?;"));
13791379
assert!(rust.contains("let row = rsscript_runtime::csv_parse_row(&buffer)?;"));
13801380
assert!(rust.contains("return rsscript_runtime::row_field_string(&row, 0i64);"));
@@ -1398,12 +1398,12 @@ fn process(input: read Path, output: read Path) -> Result<Unit, ImageError> {
13981398
let rust = lower_source_to_rust("image.rss", source).expect("source should lower");
13991399

14001400
assert!(rust.contains("-> Result<(), rsscript_runtime::ImageError>"));
1401-
assert!(rust.contains("let mut image = rsscript_runtime::image_load(&input)?;"));
1401+
assert!(rust.contains("let mut image = rsscript_runtime::image_load(input)?;"));
14021402
assert!(rust.contains("rsscript_runtime::image_resize(&mut image, 320i64, 240i64);"));
14031403
assert!(rust.contains("rsscript_runtime::image_normalize(&mut image);"));
14041404
assert!(rust.contains("rsscript_runtime::image_sharpen(&mut image);"));
14051405
assert!(rust.contains("rsscript_runtime::image_inspect(&image);"));
1406-
assert!(rust.contains("rsscript_runtime::image_save(&image, &output)?;"));
1406+
assert!(rust.contains("rsscript_runtime::image_save(&image, output)?;"));
14071407
}
14081408

14091409
#[test]
@@ -1425,7 +1425,7 @@ fn main() -> Result<Unit, HttpError> {
14251425

14261426
assert!(rust.contains("request: &rsscript_runtime::Request"));
14271427
assert!(rust.contains("-> Result<rsscript_runtime::Response, rsscript_runtime::HttpError>"));
1428-
assert!(rust.contains("let path = rsscript_runtime::request_path(&request);"));
1428+
assert!(rust.contains("let path = rsscript_runtime::request_path(request);"));
14291429
assert!(rust.contains("return rsscript_runtime::response_ok(&body);"));
14301430
assert!(rust.contains("let request = rsscript_runtime::request_new(&\"/users\".to_string());"));
14311431
assert!(rust.contains("let response = handle_request(&request)?;"));
@@ -1453,9 +1453,9 @@ fn run_query(url: read Url, sql: read String) -> Result<Unit, DbError> {
14531453

14541454
assert!(rust.contains("url: &String"));
14551455
assert!(rust.contains("-> Result<(), rsscript_runtime::DbError>"));
1456-
assert!(rust.contains("let mut pool = rsscript_runtime::ResourcePool::from_factory(2i64, || rsscript_runtime::db_connection_open(&url));"));
1456+
assert!(rust.contains("let mut pool = rsscript_runtime::ResourcePool::from_factory(2i64, || rsscript_runtime::db_connection_open(url));"));
14571457
assert!(rust.contains("let mut conn = rsscript_runtime::unwrap_runtime(rsscript_runtime::ResourcePool::borrow_at(&mut pool, rsscript_runtime::SourceSpan::new(\"db.rss\""));
1458-
assert!(rust.contains("rsscript_runtime::db_connection_query(&mut conn, &sql)?;"));
1458+
assert!(rust.contains("rsscript_runtime::db_connection_query(&mut conn, sql)?;"));
14591459
}
14601460

14611461
#[test]
@@ -1521,8 +1521,8 @@ fn run_query(url: read Url, sql: read String) -> Result<Unit, DbError> {
15211521
let rust = lower_source_to_rust("db-try-pool.rss", source).expect("source should lower");
15221522

15231523
assert!(rust.contains("-> Result<(), rsscript_runtime::DbError>"));
1524-
assert!(rust.contains("let mut pool = rsscript_runtime::ResourcePool::try_from_factory(2i64, || rsscript_runtime::db_connection_try_open(&url))?;"));
1525-
assert!(rust.contains("rsscript_runtime::db_connection_query(&mut conn, &sql)?;"));
1524+
assert!(rust.contains("let mut pool = rsscript_runtime::ResourcePool::try_from_factory(2i64, || rsscript_runtime::db_connection_try_open(url))?;"));
1525+
assert!(rust.contains("rsscript_runtime::db_connection_query(&mut conn, sql)?;"));
15261526
}
15271527

15281528
#[test]
@@ -1711,7 +1711,7 @@ fn reload_config(path: read Path, store: mut ConfigStore) -> Result<Unit, Config
17111711
assert!(
17121712
rust.contains("-> Result<rsscript_runtime::ConfigValue, rsscript_runtime::ConfigError>")
17131713
);
1714-
assert!(rust.contains("return rsscript_runtime::config_load(&path);"));
1714+
assert!(rust.contains("return rsscript_runtime::config_load(path);"));
17151715
assert!(rust.contains("store: &mut rsscript_runtime::ConfigStore"));
17161716
assert!(rust.contains("rsscript_runtime::config_store_replace(store, &next);"));
17171717
}
@@ -1733,7 +1733,7 @@ fn reload_rules_config(path: read Path, global: mut GlobalConfig) -> Result<Unit
17331733
let rust = lower_source_to_rust("rules-config.rss", source).expect("source should lower");
17341734

17351735
assert!(rust.contains("-> Result<rsscript_runtime::Config, rsscript_runtime::ConfigError>"));
1736-
assert!(rust.contains("let rules = rsscript_runtime::rule_loader_load_rules(&path)?;"));
1736+
assert!(rust.contains("let rules = rsscript_runtime::rule_loader_load_rules(path)?;"));
17371737
assert!(
17381738
rust.contains("return Ok(rsscript_runtime::config_new(&\"rules\".to_string(), &rules));")
17391739
);
@@ -2170,12 +2170,12 @@ fn write_views(file: mut File, bytes: read Bytes, buffer: read Buffer) -> Result
21702170
"#;
21712171
let rust = lower_source_to_rust("view-lower.rss", source).expect("source should lower");
21722172

2173-
assert!(rust.contains("let head = rsscript_runtime::string_view(&line, 0i64, 12i64);"));
2173+
assert!(rust.contains("let head = rsscript_runtime::string_view(line, 0i64, 12i64);"));
21742174
assert!(
21752175
rust.contains("let key = rsscript_runtime::string_view_before(&head, &\":\".to_string());")
21762176
);
2177-
assert!(rust.contains("let bytes_head = rsscript_runtime::bytes_view(&bytes, 0i64, 4i64);"));
2178-
assert!(rust.contains("let buffer_head = rsscript_runtime::buffer_view(&buffer, 0i64, 4i64);"));
2177+
assert!(rust.contains("let bytes_head = rsscript_runtime::bytes_view(bytes, 0i64, 4i64);"));
2178+
assert!(rust.contains("let buffer_head = rsscript_runtime::buffer_view(buffer, 0i64, 4i64);"));
21792179
assert!(rust.contains("rsscript_runtime::bytes_view_to_bytes(&bytes_head)"));
21802180
assert!(rust.contains("rsscript_runtime::buffer_view_to_bytes(&buffer_head)"));
21812181
assert!(rust.contains("rsscript_runtime::file_write(file, &bytes_head)?;"));
@@ -2437,11 +2437,11 @@ fn fetch_status(url: read Url) -> Result<Int, HttpError> {
24372437
let rust = lower_source_to_rust("stdlib-facades.rss", source).expect("source should lower");
24382438

24392439
assert!(rust.contains("metadata: &rsscript_runtime::FileMetadata"));
2440-
assert!(rust.contains("let exists = rsscript_runtime::directory_exists(&path);"));
2441-
assert!(rust.contains("let metadata = rsscript_runtime::directory_metadata(&path)?;"));
2442-
assert!(rust.contains("rsscript_runtime::directory_write_string(&path, &text)?;"));
2443-
assert!(rust.contains("let file_hash = rsscript_runtime::hash_sha256_file(&path)?;"));
2444-
assert!(rust.contains("let byte_hash = rsscript_runtime::hash_sha256_bytes(&bytes);"));
2440+
assert!(rust.contains("let exists = rsscript_runtime::directory_exists(path);"));
2441+
assert!(rust.contains("let metadata = rsscript_runtime::directory_metadata(path)?;"));
2442+
assert!(rust.contains("rsscript_runtime::directory_write_string(path, &text)?;"));
2443+
assert!(rust.contains("let file_hash = rsscript_runtime::hash_sha256_file(path)?;"));
2444+
assert!(rust.contains("let byte_hash = rsscript_runtime::hash_sha256_bytes(bytes);"));
24452445
assert!(rust.contains("let current = rsscript_runtime::env_current_dir()?;"));
24462446
assert!(rust.contains("let run_root = rsscript_runtime::env_run_workspace_root();"));
24472447
assert!(rust.contains("rsscript_runtime::env_set_current_dir(&current)?;"));
@@ -2453,16 +2453,16 @@ fn fetch_status(url: read Url) -> Result<Int, HttpError> {
24532453
assert!(rust.contains("let elapsed = rsscript_runtime::instant_elapsed(&now);"));
24542454
assert!(rust.contains("let millis = rsscript_runtime::duration_as_ms(&elapsed);"));
24552455
assert!(rust.contains("-> Result<bool, rsscript_runtime::RegexError>"));
2456-
assert!(rust.contains("let regex = rsscript_runtime::regex_compile(&pattern)?;"));
2457-
assert!(rust.contains("let found = rsscript_runtime::regex_find(&regex, &value);"));
2458-
assert!(rust.contains("let captures = rsscript_runtime::regex_captures(&regex, &value);"));
2456+
assert!(rust.contains("let regex = rsscript_runtime::regex_compile(pattern)?;"));
2457+
assert!(rust.contains("let found = rsscript_runtime::regex_find(&regex, value);"));
2458+
assert!(rust.contains("let captures = rsscript_runtime::regex_captures(&regex, value);"));
24592459
assert!(rust.contains("let replaced = rsscript_runtime::regex_replace_all"));
2460-
assert!(rust.contains("let parts = rsscript_runtime::regex_split(&regex, &value);"));
2461-
assert!(rust.contains("rsscript_runtime::regex_is_match(&regex, &value)"));
2462-
assert!(rust.contains("let mut dir = rsscript_runtime::tempdir_new_in(&parent)?;"));
2460+
assert!(rust.contains("let parts = rsscript_runtime::regex_split(&regex, value);"));
2461+
assert!(rust.contains("rsscript_runtime::regex_is_match(&regex, value)"));
2462+
assert!(rust.contains("let mut dir = rsscript_runtime::tempdir_new_in(parent)?;"));
24632463
assert!(rust.contains("rsscript_runtime::tempdir_path(&dir)"));
24642464
assert!(rust.contains("-> Result<i64, rsscript_runtime::HttpError>"));
2465-
assert!(rust.contains("let response = rsscript_runtime::http_get(&url)?;"));
2465+
assert!(rust.contains("let response = rsscript_runtime::http_get(url)?;"));
24662466
assert!(rust.contains("let ok = rsscript_runtime::http_response_is_success(&response);"));
24672467
assert!(rust.contains("let body = rsscript_runtime::http_response_text(&response);"));
24682468
assert!(rust.contains("return Ok(rsscript_runtime::http_response_status(&response));"));
@@ -2500,7 +2500,7 @@ async fn fetch_status(url: read Url) -> Result<Int, HttpError> {
25002500
"async fn should lower to a pending chain, got:\n{rust}"
25012501
);
25022502
assert!(
2503-
rust.contains("rsscript_runtime::pending_try(rsscript_runtime::http_get_async(&url)"),
2503+
rust.contains("rsscript_runtime::pending_try(rsscript_runtime::http_get_async(url)"),
25042504
"async HTTP client call should use the Tokio-backed pending hook, got:\n{rust}"
25052505
);
25062506
assert!(
@@ -2796,7 +2796,7 @@ fn copy(path: read Path) -> Result<Unit, FileError> {
27962796
assert!(
27972797
lowered
27982798
.rust_source
2799-
.contains(" {\n let mut file = rsscript_runtime::file_open_read(&path)?;")
2799+
.contains(" {\n let mut file = rsscript_runtime::file_open_read(path)?;")
28002800
);
28012801
assert!(lowered.rust_source.contains(
28022802
" rsscript_runtime::file_read_all(&mut file)?;\n // rss:span kind=resource_drop"
@@ -3166,7 +3166,7 @@ fn render(name: read String) -> fresh User {
31663166

31673167
assert!(rust.contains("fn User_lookup(name: &String) -> User"));
31683168
assert!(rust.contains("fn render(name: &String) -> User"));
3169-
assert!(rust.contains("return User_lookup(&name);"));
3169+
assert!(rust.contains("return User_lookup(name);"));
31703170
assert!(!rust.contains("fn User.lookup"));
31713171
assert!(!rust.contains("User::lookup"));
31723172
}
@@ -3213,7 +3213,7 @@ fn write_line<W: Writer>(
32133213
assert!(rust.contains("pub trait Writer"));
32143214
assert!(rust.contains("impl Writer for BufferWriter"));
32153215
assert!(rust.contains("fn write_line<W: Writer>(writer: &mut W, message: &String)"));
3216-
assert!(rust.contains("Writer::write(writer, &message);"));
3216+
assert!(rust.contains("Writer::write(writer, message);"));
32173217
assert!(rust.contains("BufferWriter_write(self, message);"));
32183218
assert!(!rust.contains("fn Writer_write"));
32193219
}
@@ -3246,7 +3246,7 @@ fn write_line<W: Writer>(writer: mut W, message: read String) -> Unit {
32463246
let rust =
32473247
lower_source_to_rust("receiver-protocol-lower.rss", source).expect("source should lower");
32483248

3249-
assert!(rust.contains("<W as Writer>::write(writer, &message);"));
3249+
assert!(rust.contains("<W as Writer>::write(writer, message);"));
32503250
assert!(!rust.contains("Writer::write(&mut writer, &message);"));
32513251
}
32523252

@@ -3278,7 +3278,7 @@ fn write_line(writer: mut BufferWriter, message: read String) -> Unit {
32783278
let rust = lower_source_to_rust("receiver-concrete-protocol-lower.rss", source)
32793279
.expect("source should lower");
32803280

3281-
assert!(rust.contains("<BufferWriter as Writer>::write(writer, &message);"));
3281+
assert!(rust.contains("<BufferWriter as Writer>::write(writer, message);"));
32823282
assert!(!rust.contains("BufferWriter::write(&mut writer, &message);"));
32833283
}
32843284

@@ -3315,7 +3315,7 @@ fn write_dynamic(writer: take BufferWriter, message: read String) -> Unit {
33153315
assert!(rust.contains("BufferWriter(BufferWriter)"));
33163316
assert!(rust.contains("impl Writer for CapabilityWriter"));
33173317
assert!(rust.contains("CapabilityWriter::BufferWriter(writer)"));
3318-
assert!(rust.contains("Writer::write(&mut cap, &message);"));
3318+
assert!(rust.contains("Writer::write(&mut cap, message);"));
33193319
assert!(!rust.contains("dyn Writer"));
33203320
}
33213321

@@ -3348,7 +3348,7 @@ fn write_dynamic(writer: take BufferWriter, message: read String) -> Unit {
33483348
let rust =
33493349
lower_source_to_rust("capability-receiver-lower.rss", source).expect("source should lower");
33503350

3351-
assert!(rust.contains("<CapabilityWriter as Writer>::write(&mut cap, &message);"));
3351+
assert!(rust.contains("<CapabilityWriter as Writer>::write(&mut cap, message);"));
33523352
}
33533353

33543354
#[test]
@@ -6795,7 +6795,7 @@ async fn run(url: read Url) -> Result<Unit, HttpError> {
67956795
"async loop should emit statements before the await inside the poll loop, got:\n{lowered}"
67966796
);
67976797
assert!(
6798-
lowered.contains("rsscript_runtime::http_post_json_bearer_retry_async(&url, &body"),
6798+
lowered.contains("rsscript_runtime::http_post_json_bearer_retry_async(url, &body"),
67996799
"await pending should be constructed after the per-iteration body binding, got:\n{lowered}"
68006800
);
68016801
assert!(
@@ -7041,9 +7041,9 @@ fn read_rows(path: read Path) -> Result<Unit, ChannelError> {
70417041

70427042
assert!(lowered.contains("rsscript_runtime::stream_from_list(items)"));
70437043
assert!(lowered.contains("rsscript_runtime::stream_collect_list(&stream)"));
7044-
assert!(lowered.contains("rsscript_runtime::file_bytes_stream(&path, 4096i64)?"));
7044+
assert!(lowered.contains("rsscript_runtime::file_bytes_stream(path, 4096i64)?"));
70457045
assert!(lowered.contains("let chunks: rsscript_runtime::RssStream<Vec<u8>> ="));
7046-
assert!(lowered.contains("rsscript_runtime::csv_rows(&path, 8192i64)?"));
7046+
assert!(lowered.contains("rsscript_runtime::csv_rows(path, 8192i64)?"));
70477047
assert!(lowered.contains("let rows: rsscript_runtime::RssStream<rsscript_runtime::Row> ="));
70487048
assert!(lowered.matches("rsscript_runtime::stream_next(&").count() >= 2);
70497049
}

0 commit comments

Comments
 (0)