Wiki

Ticket #254: all-empty-true.patch

File all-empty-true.patch, 2.4 KB (added by hopscc, 14 years ago)
  • Source/Cobra.Lang/Native.cs

     
    269269    } 
    270270 
    271271    static public bool All<T>(IEnumerable<T> items) { 
     272        int counter = 0; 
    272273        foreach (T item in items) 
     274                { 
     275                        counter++; 
    273276            if (!IsTrue(item)) 
    274277                return false; 
     278        }        
     279        if (counter == 0) 
     280            return false; 
    275281        return true; 
    276282    } 
    277283 
    278284    static public bool All(IEnumerable items) { 
     285        int counter = 0; 
    279286        foreach (object item in items) 
     287        { 
     288                        counter++; 
    280289            if (!IsTrue(item)) 
    281290                return false; 
    282         return true; 
     291        } 
     292        if (counter == 0) 
     293            return false; 
     294                return true; 
    283295    } 
    284296 
    285297    static public bool Any<T>(IEnumerable<T> items) { 
  • Tests/500-dynamic/104-dynamic-ops.cobra

     
    212212        assert not all t 
    213213        assert not any t 
    214214        t.clear 
    215         assert all t 
     215        assert not all t # change for tkt:254 
    216216        assert not any t 
    217217 
    218218    def testConcat 
  • Tests/110-basics-two/604-all-any-ops.cobra

     
    1212        assert not all t 
    1313        assert not any t 
    1414        t.clear 
    15         assert all t 
     15        assert not all t # # chg for tkt:254, all on empty list -> false 
    1616        assert not any t 
    1717 
    1818        # sets 
     
    2626        assert not all s 
    2727        assert not any s 
    2828        s.clear 
    29         assert all s 
     29        assert not all s # chg for tkt:254, all on empty list -> false 
    3030        assert not any s 
    3131 
    3232        # complex expressions 
  • Developer/IntermediateReleaseNotes.text

     
    487487* Fixed: Some initialization expressions for a `var` or `const` declaration give an internal error.  ticket:222 
    488488 
    489489* Fixed: Using a struct-typed `result` in a method's `ensure` produces a false error message.  ticket:219 
     490 
     491* Fixed: all on empty list returns true instead of false.  ticket:254