Changes in / [b5629d8:62e456f]


Ignore:
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/AlternativeFinder.cc

    rb5629d8 r62e456f  
    131131
    132132        void printAlts( const AltList &list, std::ostream &os, unsigned int indentAmt ) {
    133                 Indenter indent = { indentAmt };
    134 
    135                 std::vector<int> idx;
    136                 idx.reserve(list.size());
    137                 for(int i = 0; i < list.size(); i++) { idx.push_back(i); }
    138 
    139                 std::sort(idx.begin(), idx.end(), [&list](int lhs_idx, int rhs_idx) -> bool {
    140                         const auto & lhs = list.at(lhs_idx);
    141                         const auto & rhs = list.at(rhs_idx);
    142                         if(lhs.expr->location.startsBefore(rhs.expr->location)) return true;
    143                         if(rhs.expr->location.startsBefore(lhs.expr->location)) return false;
    144 
    145                         if(lhs.env.size() < rhs.env.size()) return true;
    146                         if(lhs.env.size() > rhs.env.size()) return false;
    147 
    148                         if(lhs.openVars.size() < rhs.openVars.size()) return true;
    149                         if(lhs.openVars.size() > rhs.openVars.size()) return false;
    150 
    151                         if(lhs.need.size() < rhs.need.size()) return true;
    152                         if(lhs.need.size() > rhs.need.size()) return false;
    153 
    154                         return false;
    155                 });
    156 
    157                 for ( AltList::const_iterator i = list.begin(); i != list.end(); ++i ) {
    158                         i->print( os, indent );
    159                         os << std::endl;
     133                std::vector<std::string> sorted;
     134                sorted.reserve(list.size());
     135                for(const auto & c : list) {
     136                        std::stringstream ss;
     137                        c.print( ss, indentAmt );
     138                        sorted.push_back(ss.str());
     139                }
     140
     141                std::sort(sorted.begin(), sorted.end());
     142
     143                for ( const auto & s : sorted ) {
     144                        os << s << std::endl;
    160145                }
    161146        }
  • src/ResolvExpr/Candidate.cpp

    rb5629d8 r62e456f  
    4141
    4242void print( std::ostream & os, const CandidateList & cands, Indenter indent ) {
    43         for ( const CandidateRef & cand : cands ) {
    44                 print( os, *cand, indent );
    45                 os << std::endl;
     43        std::vector<std::string> sorted;
     44        sorted.reserve(cands.size());
     45        for(const auto & c : cands) {
     46                std::stringstream ss;
     47                print( ss, *c, indent );
     48                sorted.push_back(ss.str());
     49        }
     50
     51        std::sort(sorted.begin(), sorted.end());
     52
     53        for ( const auto & s : sorted ) {
     54                os << s << std::endl;
    4655        }
    4756}
  • tests/.expect/castError.nast.txt

    rb5629d8 r62e456f  
    77  char Alternatives are:
    88Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    9       Variable Expression: f: signed int
     9      Variable Expression: f: double
    1010      ... with resolved type:
    11         signed int
     11        double
    1212    ... to:
    1313      char
     
    3939
    4040Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    41       Variable Expression: f: double
     41      Variable Expression: f: signed int
    4242      ... with resolved type:
    43         double
     43        signed int
    4444    ... to:
    4545      char
  • tests/.expect/castError.oast.txt

    rb5629d8 r62e456f  
    66with resolved type:
    77  char Alternatives are:
     8Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
     9      Variable Expression: f: double
     10      with resolved type:
     11        double
     12    ... to:
     13      char
     14    with resolved type:
     15      char
     16  (types:
     17    char
     18  )
     19  Environment:
     20
    821Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    922      Variable Expression: f: function
     
    1629        ... returning nothing
    1730
    18     ... to:
    19       char
    20     with resolved type:
    21       char
    22   (types:
    23     char
    24   )
    25   Environment:
    26 
    27 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    28       Variable Expression: f: double
    29       with resolved type:
    30         double
    3131    ... to:
    3232      char
     
    6767        with resolved type:
    6868          signed int
    69         Variable Expression: v: unsigned char
     69        Variable Expression: v: signed short int
    7070        with resolved type:
    71           unsigned char
     71          signed short int
    7272      with resolved type:
    73         unsigned char
     73        signed short int
    7474    ... to: nothing
    7575    with resolved type:
     
    8585        with resolved type:
    8686          signed int
    87         Variable Expression: v: signed short int
     87        Variable Expression: v: unsigned char
    8888        with resolved type:
    89           signed short int
     89          unsigned char
    9090      with resolved type:
    91         signed short int
     91        unsigned char
    9292    ... to: nothing
    9393    with resolved type:
  • tests/errors/.expect/completeType.nast.x64.txt

    rb5629d8 r62e456f  
    99... with resolved type:
    1010  void Alternatives are:
     11Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
     12      Application of
     13        Variable Expression: *?: forall
     14          DT: data type
     15          function
     16        ... with parameters
     17          pointer to instance of type DT (not function type)
     18        ... returning
     19          reference to instance of type DT (not function type)
     20
     21        ... with resolved type:
     22          pointer to forall
     23            [unbound]:data type
     24            function
     25          ... with parameters
     26            pointer to instance of type [unbound] (not function type)
     27          ... returning
     28            reference to instance of type [unbound] (not function type)
     29
     30        ... to arguments
     31        Variable Expression: x: pointer to instance of struct A without body
     32        ... with resolved type:
     33          pointer to instance of struct A without body
     34
     35      ... with resolved type:
     36        reference to instance of struct A without body
     37    ... to: nothing
     38    ... with resolved type:
     39      void
     40  (types:
     41    void
     42  )
     43  Environment:([unbound]) -> instance of struct A without body (no widening)
     44
     45
    1146Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
    1247      Application of
     
    4277  )
    4378  Environment:([unbound]) -> instance of struct B with body (no widening)
    44 
    45 
    46 Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
    47       Application of
    48         Variable Expression: *?: forall
    49           DT: data type
    50           function
    51         ... with parameters
    52           pointer to instance of type DT (not function type)
    53         ... returning
    54           reference to instance of type DT (not function type)
    55 
    56         ... with resolved type:
    57           pointer to forall
    58             [unbound]:data type
    59             function
    60           ... with parameters
    61             pointer to instance of type [unbound] (not function type)
    62           ... returning
    63             reference to instance of type [unbound] (not function type)
    64 
    65         ... to arguments
    66         Variable Expression: x: pointer to instance of struct A without body
    67         ... with resolved type:
    68           pointer to instance of struct A without body
    69 
    70       ... with resolved type:
    71         reference to instance of struct A without body
    72     ... to: nothing
    73     ... with resolved type:
    74       void
    75   (types:
    76     void
    77   )
    78   Environment:([unbound]) -> instance of struct A without body (no widening)
    7979
    8080
  • tests/meta/.expect/archVast.nast.x64.txt

    rb5629d8 r62e456f  
    77  char Alternatives are:
    88Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    9       Variable Expression: FX64: signed int
     9      Variable Expression: FX64: double
    1010      ... with resolved type:
    11         signed int
     11        double
    1212    ... to:
    1313      char
     
    3939
    4040Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    41       Variable Expression: FX64: double
     41      Variable Expression: FX64: signed int
    4242      ... with resolved type:
    43         double
     43        signed int
    4444    ... to:
    4545      char
  • tests/meta/.expect/archVast.oast.x64.txt

    rb5629d8 r62e456f  
    66with resolved type:
    77  char Alternatives are:
     8Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
     9      Variable Expression: FX64: double
     10      with resolved type:
     11        double
     12    ... to:
     13      char
     14    with resolved type:
     15      char
     16  (types:
     17    char
     18  )
     19  Environment:
     20
    821Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    922      Variable Expression: FX64: function
     
    1629        ... returning nothing
    1730
    18     ... to:
    19       char
    20     with resolved type:
    21       char
    22   (types:
    23     char
    24   )
    25   Environment:
    26 
    27 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    28       Variable Expression: FX64: double
    29       with resolved type:
    30         double
    3131    ... to:
    3232      char
Note: See TracChangeset for help on using the changeset viewer.