Skip to content

Commit c2ea3f3

Browse files
committed
fix(assail): recognize canonical AffineScript extension
1 parent 6aacab5 commit c2ea3f3

4 files changed

Lines changed: 30 additions & 1 deletion

File tree

src/assail/analyzer.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6561,6 +6561,31 @@ mod tests {
65616561
assert_eq!(Language::detect("page.jsx"), Language::JavaScript);
65626562
}
65636563

6564+
#[test]
6565+
fn analyze_affinescript_extension_reaches_dsl_analyzer() {
6566+
let tmp = TempDir::new().unwrap();
6567+
let affine_file = tmp.path().join("ffi_boundary.affine");
6568+
fs::write(
6569+
&affine_file,
6570+
"external one\nexternal two\nexternal three\nexternal four\n",
6571+
)
6572+
.unwrap();
6573+
6574+
assert_eq!(
6575+
Language::detect(affine_file.to_str().unwrap()),
6576+
Language::AffineScript
6577+
);
6578+
6579+
let report = Analyzer::new(&affine_file).unwrap().analyze().unwrap();
6580+
assert!(
6581+
report
6582+
.weak_points
6583+
.iter()
6584+
.any(|point| point.category == WeakPointCategory::UnsafeFFI),
6585+
".affine files must reach the AffineScript analyzer, not Unknown"
6586+
);
6587+
}
6588+
65646589
// ---------------------------------------------------------------
65656590
// 2. Analyzer::new() with a valid temp directory
65666591
// ---------------------------------------------------------------

src/assemblyline.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,8 @@ fn is_source_file(path: &Path) -> bool {
292292
| "yaml"
293293
| "yml"
294294
| "json"
295+
| "aff"
296+
| "affine"
295297
)
296298
}
297299

@@ -546,6 +548,7 @@ mod tests {
546548
assert!(is_source_file(Path::new("lib.py")));
547549
assert!(is_source_file(Path::new("app.js")));
548550
assert!(is_source_file(Path::new("mod.gleam")));
551+
assert!(is_source_file(Path::new("module.affine")));
549552
assert!(!is_source_file(Path::new("image.png")));
550553
assert!(!is_source_file(Path::new("binary.exe")));
551554
assert!(!is_source_file(Path::new("readme.md")));

src/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ impl Language {
170170
"jtv" => Language::JuliaTheViper,
171171
"obli" => Language::Oblibeny,
172172
"anvom" => Language::Anvomidav,
173-
"aff" => Language::AffineScript,
173+
"aff" | "affine" => Language::AffineScript,
174174
"ephapax" | "eph" => Language::Ephapax,
175175
"bet" => Language::BetLang,
176176
"err" => Language::ErrorLang,

tests/types_tests.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ fn language_detect_nextgen_dsls() {
9090
assert_eq!(Language::detect("script.woke"), Language::WokeLang);
9191
assert_eq!(Language::detect("query.vcl"), Language::VCL);
9292
assert_eq!(Language::detect("types.aff"), Language::AffineScript);
93+
assert_eq!(Language::detect("types.affine"), Language::AffineScript);
9394
}
9495

9596
#[test]

0 commit comments

Comments
 (0)