Take advantage of string interning in comparisons
0125f9b7e9c690967bf6ab6272011ff550d715a7f546b22fb590269b22771b14
1 parent
9de503ed
lib/std/lang/resolver.rad
+2 -2
| 4896 | 4896 | else panic "resolveRecordLit: expected labeled field"; |
|
| 4897 | 4897 | let fieldName = try nodeName(self, label); |
|
| 4898 | 4898 | let expected = recordType.fields[idx]; |
|
| 4899 | 4899 | let expectedName = expected.name else panic; |
|
| 4900 | 4900 | ||
| 4901 | - | if not mem::eq(fieldName, expectedName) { |
|
| 4901 | + | if fieldName != expectedName { |
|
| 4902 | 4902 | throw emitError(self, fieldNode, ErrorKind::RecordFieldOutOfOrder { |
|
| 4903 | 4903 | field: fieldName, |
|
| 4904 | 4904 | prev: expectedName, |
|
| 4905 | 4905 | }); |
|
| 4906 | 4906 | } |
| 4953 | 4953 | else panic "resolveAnonRecordLit: expected labeled field"; |
|
| 4954 | 4954 | let fieldName = try nodeName(self, label); |
|
| 4955 | 4955 | let expected = targetInfo.fields[idx]; |
|
| 4956 | 4956 | let expectedName = expected.name else panic; |
|
| 4957 | 4957 | ||
| 4958 | - | if not mem::eq(fieldName, expectedName) { |
|
| 4958 | + | if fieldName != expectedName { |
|
| 4959 | 4959 | throw emitError(self, fieldNode, ErrorKind::RecordFieldOutOfOrder { |
|
| 4960 | 4960 | field: fieldName, |
|
| 4961 | 4961 | prev: expectedName, |
|
| 4962 | 4962 | }); |
|
| 4963 | 4963 | } |