Add 'operator==' for 'basic_collection_iterator'

Jordan Rose via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 15 14:59:11 PST 2015


The logic here is wrong:

> +  bool operator==(const basic_collection_iterator &Other) const {
> +    if (Base == Other.Base)
>        return true;

This test is backwards (early exit on !=, not ==), and the null check below is now incorrect.

I generally do support being consistent about operators, so I'm in favor of the patch, but please write some tests as well. unittests/Support/YAMLParserTest.cpp is probably a good place.

Jordan


> On Dec 15, 2015, at 13:14 , Alexey Denisov <1101.debian at gmail.com> wrote:
> 
> Patch adds ‘operator==‘ implementation for ‘basic_collection_iterator’
> 
> Motivation:
> 
> Swift compiler uses workaround since 'operator==‘ is not implemented.
> 
> Driver.cpp:220
> 
>  if (!(seqI != seqE))
>    return true;
> 
> 
> 
> <basic_collection_iterator_operator_equals.patch>
> 
> --
> AlexDenisov
> Software Engineer, http://lowlevelbits.org
> 



More information about the llvm-commits mailing list