Changeset 5780d0d for libcfa/prelude


Ignore:
Timestamp:
Dec 18, 2024, 10:33:40 AM (5 weeks ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
master
Children:
faf9e19
Parents:
94aa202
Message:

Removed increment and decrement operators for enumerations from builtins. I am confident the generic fallbacks work because I added tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/prelude/builtins.c

    r94aa202 r5780d0d  
    6666forall( T & )
    6767trait is_generator {
    68       void main( T & this );
    69       generator$ * get_generator( T & this );
     68        void main( T & this );
     69        generator$ * get_generator( T & this );
    7070};
    7171
     
    234234static inline
    235235forall( E | Serial( E ) ) {
    236         E ++?( E & l ) {
     236        E ?+=?( E & l, one_t ) {
    237237                int pos = fromInstance( l );
    238238                l = fromInt_unsafe( pos + 1 );
     
    240240        }
    241241
    242         E --?( E & l ) {
     242        E ?-=?( E & l, one_t ) {
    243243                int pos = fromInstance( l );
    244244                l = fromInt_unsafe( pos - 1 );
     
    246246        }
    247247
    248         E ?+=?( E & l, one_t ) {
    249                 int pos = fromInstance( l );
    250                 l = fromInt_unsafe( pos + 1 );
    251                 return l;
    252         }
    253 
    254         E ?-=?( E & l, one_t ) {
    255                 int pos = fromInstance( l );
    256                 l = fromInt_unsafe( pos - 1 );
    257                 return l;
    258         }
    259 
    260248        E ?+=?( E & l, int i ) {
    261249                int pos = fromInstance( l );
     
    268256                l = fromInt_unsafe( pos - i );
    269257                return l;
    270         }
    271 
    272         E ?++( E & l ) {
    273                 int pos = fromInstance( l );
    274                 l = fromInt_unsafe( pos + 1 );
    275                 return fromInt_unsafe( pos );
    276         }
    277 
    278         E ?--( E & l ) {
    279                 int pos = fromInstance( l );
    280                 l = fromInt_unsafe( pos - 1 );
    281                 return fromInt_unsafe( pos );
    282258        }
    283259}
Note: See TracChangeset for help on using the changeset viewer.