Skip to content

Commit

Permalink
Merge pull request #125 from winitzki/master
Browse files Browse the repository at this point in the history
[FIX] Correct generation of fetch requests with repeated variables. (Sergei Winitzki)
  • Loading branch information
rentzsch committed Aug 17, 2012
2 parents e834411 + 12bd8c0 commit 4334e67
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions mogenerator.m
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,16 @@ - (NSString *)_resolveKeyPathType:(NSString *)keyPath {
return [entity managedObjectClassName];
}

// auxiliary function
- (BOOL) bindingsArray:(NSArray *)bindings containsVariableNamed:(NSString *)name {
for (NSDictionary *dict in bindings) {
if ([[dict objectForKey:@"name"] isEqual:name]) {
return YES;
}
}
return NO;
}

- (void)_processPredicate:(NSPredicate*)predicate_ bindings:(NSMutableArray*)bindings_ {
if (!predicate_) return;

Expand Down Expand Up @@ -209,11 +219,13 @@ - (void)_processPredicate:(NSPredicate*)predicate_ bindings:(NSMutableArray*)bin
type = [self _resolveKeyPathType:[lhs keyPath]];
}
type = [type stringByAppendingString:@"*"];

[bindings_ addObject:[NSDictionary dictionaryWithObjectsAndKeys:
// make sure that no repeated variables are entered here.
if (![self bindingsArray:bindings_ containsVariableNamed:[rhs variable]]) {
[bindings_ addObject:[NSDictionary dictionaryWithObjectsAndKeys:
[rhs variable], @"name",
type, @"type",
nil]];
}
} break;
default:
assert(0 && "unknown NSExpression type");
Expand Down

0 comments on commit 4334e67

Please sign in to comment.