Skip to content
Merged
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
52eb7b3
docs(v3): idempotency lens M3 prep audit and checklist
briansrls Apr 29, 2026
2f466a9
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
0786e09
docs(audit): reconcile M3 fold entry with DB-3 analyze(workflow)
briansrls Apr 29, 2026
95b74b3
docs(audit): retarget M3 prep to DB-3, dimensions.dag, Stage 2f
briansrls Apr 29, 2026
9d43ce4
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
1de6b6d
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
801eddf
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
c77d4c3
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
282e93e
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
e1cf74e
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
b754e0e
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
2874aab
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
217f34a
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
f81740c
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
757e451
WIP: smart-boar-25
briansrls Apr 29, 2026
e47d58f
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
20df546
WIP: smart-boar-25
briansrls Apr 29, 2026
2b0d081
WIP: smart-boar-25
briansrls Apr 29, 2026
ad51ea9
WIP: smart-boar-25
briansrls Apr 29, 2026
70332d0
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
4bb5269
WIP: smart-boar-25
briansrls Apr 29, 2026
7b4359d
WIP: smart-boar-25
briansrls Apr 29, 2026
fff6629
WIP: smart-boar-25
briansrls Apr 29, 2026
dc3d520
WIP: smart-boar-25
briansrls Apr 29, 2026
23a693f
chore: remove accidental .issue-1130-reply.md artifact
briansrls Apr 29, 2026
d22de59
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
7d48d3a
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
8df8dfb
fix(v3): resync bootstrap snapshots for v3_l1 SourceSpan drift
briansrls Apr 29, 2026
ad8bc5f
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 29, 2026
6260302
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
e94fd9f
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
88deabd
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
ce0046d
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
4384bed
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
36f6a74
WIP: smart-boar-25
briansrls Apr 30, 2026
8c1f825
chore: apply cargo fmt
briansrls Apr 30, 2026
5d096d1
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
1892024
WIP: smart-boar-25
briansrls Apr 30, 2026
ee17245
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
d68ef5d
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
0d6762c
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
011791a
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
cef29c0
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
cb038e7
Merge remote-tracking branch 'origin/main' into session/smart-boar-25
briansrls Apr 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions src/v3/compiler/tests/integration/m2_feature_parity_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,91 @@ fn test_3a2_record_data_lowers_function_refs_and_nested_records() {
);
}

/// Inbox #1130 / #1139 — complexity `Lens<Int>` migration readiness: Prereq-1
/// (Arrow-typed record fields + nested `Monoid<C>`) already lowers `fn`
/// declaration references. This shape matches `Lens<C>`'s `branch` /
/// `sequential` surface over `Int`; a real `data … : Lens<Int>` still waits
/// on Prereq-2 for `read: … -> Witness<C>` and `validate: … ->
/// OptionalDiagnostic` (variant constructors / block bodies), not on
/// anything complexity-specific beyond that shared gap.
#[test]
fn test_3a2_lensish_int_carrier_lowers_branch_and_monoid_fn_refs() {
let src = "\
type MiniMonoid {\n\
op: fn(Int, Int) -> Int,\n\
identity: Int\n\
}\n\
type LensishIntCarrier {\n\
name: String,\n\
read: fn(Int) -> Int,\n\
sequential: MiniMonoid,\n\
branch: fn(Int, Int) -> Int\n\
}\n\
fn passthrough(x: Int) -> Int = x\n\
fn int_add(a: Int, b: Int) -> Int = a + b\n\
fn int_max(a: Int, b: Int) -> Int = if a > b then a else b\n\
data lensish_smoke: LensishIntCarrier = {\n\
name: \"smoke\",\n\
read: passthrough,\n\
sequential: { op: int_add, identity: 0 },\n\
branch: int_max\n\
}";
let dag = cached_compile_to_dag(src, "lensish_int_carrier.v3");
let read_id = dag
.declaration_by_name("passthrough")
.expect("passthrough must exist")
.id;
let op_id = dag
.declaration_by_name("int_add")
.expect("int_add must exist")
.id;
let branch_id = dag
.declaration_by_name("int_max")
.expect("int_max must exist")
.id;
let decl = dag
.declaration_by_name("lensish_smoke")
.expect("lensish_smoke must exist");
let Some(v3_compiler::dag::ValueBody::Structural { fields }) = &decl.value_body else {
panic!(
"expected lensish_smoke data body to lower structurally, got {:?}",
decl.value_body
);
};
let read = fields
.iter()
.find(|(label, _)| label == "read")
.map(|(_, value)| value)
.expect("read field");
assert_eq!(read, &v3_compiler::dag::FieldValue::Reference(read_id));

let branch = fields
.iter()
.find(|(label, _)| label == "branch")
.map(|(_, value)| value)
.expect("branch field");
assert_eq!(
branch,
&v3_compiler::dag::FieldValue::Reference(branch_id),
"`branch: int_max` must lower like `Lens<C>.branch` (join over arms)"
);

let sequential = fields
.iter()
.find(|(label, _)| label == "sequential")
.map(|(_, value)| value)
.expect("sequential field");
let v3_compiler::dag::FieldValue::Record(nested) = sequential else {
panic!("`sequential` must lower as a nested record, got {sequential:?}");
};
let op = nested
.iter()
.find(|(label, _)| label == "op")
.map(|(_, value)| value)
.expect("op field");
assert_eq!(op, &v3_compiler::dag::FieldValue::Reference(op_id));
}

#[test]
fn test_3a2_record_data_rejects_type_alias_as_function_ref_value() {
let src = "\
Expand Down
Loading