Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
djinni
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
djinni
Commits
5a0a374b
Commit
5a0a374b
authored
May 28, 2015
by
j4cbo
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #97 from ddeville/equality-hashing
objc: also implement `hash` when implementing `isEqual:`
parents
435e88ca
62811e07
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
57 additions
and
10 deletions
+57
-10
src/source/ObjcGenerator.scala
src/source/ObjcGenerator.scala
+28
-1
test-suite/generated-src/objc/DBAssortedIntegers.mm
test-suite/generated-src/objc/DBAssortedIntegers.mm
+13
-0
test-suite/generated-src/objc/DBClientReturnedRecord.mm
test-suite/generated-src/objc/DBClientReturnedRecord.mm
+0
-1
test-suite/generated-src/objc/DBConstants.mm
test-suite/generated-src/objc/DBConstants.mm
+0
-1
test-suite/generated-src/objc/DBDateRecord.mm
test-suite/generated-src/objc/DBDateRecord.mm
+0
-1
test-suite/generated-src/objc/DBMapDateRecord.mm
test-suite/generated-src/objc/DBMapDateRecord.mm
+0
-1
test-suite/generated-src/objc/DBMapListRecord.mm
test-suite/generated-src/objc/DBMapListRecord.mm
+0
-1
test-suite/generated-src/objc/DBMapRecord.mm
test-suite/generated-src/objc/DBMapRecord.mm
+0
-1
test-suite/generated-src/objc/DBNestedCollection.mm
test-suite/generated-src/objc/DBNestedCollection.mm
+0
-1
test-suite/generated-src/objc/DBPrimitiveList.mm
test-suite/generated-src/objc/DBPrimitiveList.mm
+0
-1
test-suite/generated-src/objc/DBRecordWithDerivings.mm
test-suite/generated-src/objc/DBRecordWithDerivings.mm
+8
-0
test-suite/generated-src/objc/DBRecordWithNestedDerivings.mm
test-suite/generated-src/objc/DBRecordWithNestedDerivings.mm
+8
-0
test-suite/generated-src/objc/DBSetRecord.mm
test-suite/generated-src/objc/DBSetRecord.mm
+0
-1
No files found.
src/source/ObjcGenerator.scala
View file @
5a0a374b
...
...
@@ -291,6 +291,33 @@ class ObjcGenerator(spec: Spec) extends Generator(spec) {
}
w
.
wl
(
";"
)
}
w
.
wl
w
.
wl
(
"- (NSUInteger)hash"
)
w
.
braced
{
w
.
w
(
s
"return "
).
nestedN
(
2
)
{
w
.
w
(
s
"NSStringFromClass([self class]).hash"
)
for
(
f
<-
r
.
fields
)
{
w
.
wl
(
" ^"
)
f
.
ty
.
resolved
.
base
match
{
case
MOptional
=>
f
.
ty
.
resolved
.
args
.
head
.
base
match
{
case
df
:
MDef
if
df.defType
=
=
DEnum
=>
w
.
w
(
s
"(NSUInteger)self.${idObjc.field(f.ident)}"
)
case
_
=>
w
.
w
(
s
"self.${idObjc.field(f.ident)}.hash"
)
}
case
t
:
MPrimitive
=>
w
.
w
(
s
"(NSUInteger)self.${idObjc.field(f.ident)}"
)
case
df
:
MDef
=>
df
.
defType
match
{
case
DEnum
=>
w
.
w
(
s
"(NSUInteger)self.${idObjc.field(f.ident)}"
)
case
_
=>
w
.
w
(
s
"self.${idObjc.field(f.ident)}.hash"
)
}
case
_
=>
w
.
w
(
s
"self.${idObjc.field(f.ident)}.hash"
)
}
}
}
w
.
wl
(
";"
)
}
w
.
wl
}
def
generatePrimitiveOrder
(
ident
:
Ident
,
w
:
IndentWriter
)
:
Unit
=
{
...
...
@@ -326,8 +353,8 @@ class ObjcGenerator(spec: Spec) extends Generator(spec) {
}
w
.
wl
(
"return NSOrderedSame;"
)
}
}
w
.
wl
}
w
.
wl
(
"@end"
)
})
}
...
...
test-suite/generated-src/objc/DBAssortedIntegers.mm
View file @
5a0a374b
...
...
@@ -44,4 +44,17 @@
((
self
.
oSixtyfour
==
nil
&&
typedOther
.
oSixtyfour
==
nil
)
||
(
self
.
oSixtyfour
!=
nil
&&
[
self
.
oSixtyfour
isEqual
:
typedOther
.
oSixtyfour
]));
}
-
(
NSUInteger
)
hash
{
return
NSStringFromClass
([
self
class
]).
hash
^
(
NSUInteger
)
self
.
eight
^
(
NSUInteger
)
self
.
sixteen
^
(
NSUInteger
)
self
.
thirtytwo
^
(
NSUInteger
)
self
.
sixtyfour
^
self
.
oEight
.
hash
^
self
.
oSixteen
.
hash
^
self
.
oThirtytwo
.
hash
^
self
.
oSixtyfour
.
hash
;
}
@end
test-suite/generated-src/objc/DBClientReturnedRecord.mm
View file @
5a0a374b
...
...
@@ -18,5 +18,4 @@
return
self
;
}
@end
test-suite/generated-src/objc/DBConstants.mm
View file @
5a0a374b
...
...
@@ -39,5 +39,4 @@ DBConstants * __nonnull const DBConstantsObjectConstant = [[DBConstants alloc] i
return
self
;
}
@end
test-suite/generated-src/objc/DBDateRecord.mm
View file @
5a0a374b
...
...
@@ -14,5 +14,4 @@
return
self
;
}
@end
test-suite/generated-src/objc/DBMapDateRecord.mm
View file @
5a0a374b
...
...
@@ -14,5 +14,4 @@
return
self
;
}
@end
test-suite/generated-src/objc/DBMapListRecord.mm
View file @
5a0a374b
...
...
@@ -14,5 +14,4 @@
return
self
;
}
@end
test-suite/generated-src/objc/DBMapRecord.mm
View file @
5a0a374b
...
...
@@ -14,5 +14,4 @@
return
self
;
}
@end
test-suite/generated-src/objc/DBNestedCollection.mm
View file @
5a0a374b
...
...
@@ -14,5 +14,4 @@
return
self
;
}
@end
test-suite/generated-src/objc/DBPrimitiveList.mm
View file @
5a0a374b
...
...
@@ -14,5 +14,4 @@
return
self
;
}
@end
test-suite/generated-src/objc/DBRecordWithDerivings.mm
View file @
5a0a374b
...
...
@@ -25,6 +25,14 @@
return
self
.
key1
==
typedOther
.
key1
&&
[
self
.
key2
isEqualToString
:
typedOther
.
key2
];
}
-
(
NSUInteger
)
hash
{
return
NSStringFromClass
([
self
class
]).
hash
^
(
NSUInteger
)
self
.
key1
^
self
.
key2
.
hash
;
}
-
(
NSComparisonResult
)
compare
:(
DBRecordWithDerivings
*
)
other
{
NSComparisonResult
tempResult
;
...
...
test-suite/generated-src/objc/DBRecordWithNestedDerivings.mm
View file @
5a0a374b
...
...
@@ -25,6 +25,14 @@
return
self
.
key
==
typedOther
.
key
&&
[
self
.
rec
isEqual
:
typedOther
.
rec
];
}
-
(
NSUInteger
)
hash
{
return
NSStringFromClass
([
self
class
]).
hash
^
(
NSUInteger
)
self
.
key
^
self
.
rec
.
hash
;
}
-
(
NSComparisonResult
)
compare
:(
DBRecordWithNestedDerivings
*
)
other
{
NSComparisonResult
tempResult
;
...
...
test-suite/generated-src/objc/DBSetRecord.mm
View file @
5a0a374b
...
...
@@ -14,5 +14,4 @@
return
self
;
}
@end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment