File tree Expand file tree Collapse file tree 4 files changed +38
-0
lines changed Expand file tree Collapse file tree 4 files changed +38
-0
lines changed Original file line number Diff line number Diff line change 11## Unreleased - [ Full diff] ( https://github.com/lit-lang/lit/compare/v0.2.0...main )
22
3+ - Compare arrays/maps by structure
4+
5+ ``` lit
6+ let a = [1, 2, 3]
7+ let b = [1, 2, 3]
8+ println a == b # true
9+
10+ let m = {a: 1, b: 2}
11+ let n = {b: 2, a: 1}
12+ println m == n # true
13+ ```
14+
315- Add symbol-string shorthand syntax for maps
416
517``` lit
Original file line number Diff line number Diff line change @@ -12,3 +12,21 @@ println("str" == "ing") # expect: false
1212println(nil == false) # expect: false
1313println(false == 0) # expect: false
1414println(0 == "0") # expect: false
15+
16+ # compound types
17+ println([] == []) # expect: true
18+ println([1, "foo"] == [1, "foo"]) # expect: true
19+ println([1, "foo"] == ["foo", 1]) # expect: false
20+
21+ println({:} == {:}) # expect: true
22+ println({1 : "a"} == {1 : "a"}) # expect: true
23+ println({1 : "a", 2 : "b"} == {2 : "b", 1 : "a"}) # expect: true
24+ println({1 : "a"} == {2 : "b"}) # expect: false
25+
26+ # custom types
27+ type Foo {}
28+ println(Foo() == Foo()) # expect: false
29+ type Bar {
30+ init do |x| self.x = x
31+ }
32+ println(Bar(1) == Bar(1)) # expect: false
Original file line number Diff line number Diff line change @@ -112,5 +112,9 @@ module Lit
112112 def set (name : Token , value : Value )
113113 raise RuntimeError .new(name, " Cannot set properties on array." )
114114 end
115+
116+ def == (other : LitArray ) : Bool
117+ return @elements == other.elements
118+ end
115119 end
116120end
Original file line number Diff line number Diff line change @@ -57,5 +57,9 @@ module Lit
5757 def set (name : Token , value : Value )
5858 raise RuntimeError .new(name, " Cannot set properties on array." )
5959 end
60+
61+ def == (other : LitMap ) : Bool
62+ return @elements == other.elements
63+ end
6064 end
6165end
You can’t perform that action at this time.
0 commit comments