brewery
notashelf /
28de44c5980099270a2482f04284128c54142270

nixir

public

Import-resolving Nix IR plugin

Star0tarball
clone
ssh://git@git.notashelf.dev:33/notashelf/nixir.git
tests/fixtures/lambda_pattern.nixNix61 lines828 B
1
# Test lambda patterns
2
let
3
  # Basic destructuring
4
  f1 = {
5
    a,
6
    b,
7
  }:
8
    a + b;
9
10
  # With default values
11
  f2 = {
12
    a,
13
    b ? 10,
14
  }:
15
    a + b;
16
17
  # With ellipsis (extra fields allowed)
18
  f3 = {a, ...}: a * 2;
19
20
  # Named pattern with ellipsis to allow extra fields
21
  f4 = arg @ {
22
    a,
23
    b,
24
    ...
25
  }:
26
    a + b + arg.c;
27
28
  # Simple lambda (not a pattern)
29
  f5 = x: x + 1;
30
in {
31
  # Test basic destructuring
32
  test1 = f1 {
33
    a = 3;
34
    b = 4;
35
  };
36
37
  # Test with defaults (provide both)
38
  test2a = f2 {
39
    a = 5;
40
    b = 6;
41
  };
42
43
  # Test with defaults (use default for b)
44
  test2b = f2 {a = 5;};
45
46
  # Test ellipsis (extra field ignored)
47
  test3 = f3 {
48
    a = 7;
49
    extra = 999;
50
  };
51
52
  # Test named pattern
53
  test4 = f4 {
54
    a = 1;
55
    b = 2;
56
    c = 3;
57
  };
58
59
  # Test simple lambda
60
  test5 = f5 10;
61
}