Changes in / [9617533:47dd0d2]


Ignore:
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Pass.hpp

    r9617533 r47dd0d2  
    4848//
    4949// Several additional features are available through inheritance
    50 // | PureVisitor           - makes the visitor pure, it never modifies nodes in place and always
    51 //                           clones nodes it needs to make changes to
    5250// | WithTypeSubstitution  - provides polymorphic const TypeSubstitution * env for the
    5351//                           current expression
     
    269267/// Keep track of the polymorphic const TypeSubstitution * env for the current expression
    270268
    271 /// If used the visitor will always clone nodes.
     269/// marker to force shallow copies in pass visit
    272270struct PureVisitor {};
    273271
  • src/AST/Pass.impl.hpp

    r9617533 r47dd0d2  
    2121
    2222#include "AST/TypeSubstitution.hpp"
     23// #include "AST/Copy.hpp"
    2324
    2425#define VISIT_START( node ) \
     
    328329
    329330                if( __pass::differs(old_val, new_val) ) {
     331                        // auto new_parent = mutate(parent);
    330332                        auto new_parent = __pass::mutate<core_t>(parent);
    331333                        new_parent->*child = new_val;
  • src/AST/TypeSubstitution.hpp

    r9617533 r47dd0d2  
    4646        template< typename SynTreeClass >
    4747        struct ApplyResult {
     48                // const SynTreeClass * node;
    4849                ast::ptr<SynTreeClass> node;
    4950                int count;
     
    186187        assert( input );
    187188        Pass<Substituter> sub( *this, false );
     189//      input = strict_dynamic_cast< const SynTreeClass * >( deepCopy(input)->accept( sub ) );
    188190        input = strict_dynamic_cast< const SynTreeClass * >( input->accept( sub ) );
    189191        return { input, sub.core.subCount };
     
    194196        assert( input );
    195197        Pass<Substituter> sub( *this, true );
     198//      input = strict_dynamic_cast< const SynTreeClass * >( deepCopy(input)->accept( sub ) );
    196199        input = strict_dynamic_cast< const SynTreeClass * >( input->accept( sub ) );
    197200        return { input, sub.core.subCount };
  • src/ResolvExpr/Unify.cc

    r9617533 r47dd0d2  
    11131113                        ast::Pass<TtypeExpander_new> expander{ tenv };
    11141114
     1115                        // ast::ptr<ast::TupleType> tuplec = tuple;
     1116                        // ast::ptr<ast::TupleType> tuple2c = tuple2;
    11151117                        const ast::Type * flat = tuple->accept( expander );
    11161118                        const ast::Type * flat2 = tuple2->accept( expander );
  • tests/errors/.expect/completeType.x86.txt

    r9617533 r47dd0d2  
    66    Name: x
    77
    8 ... to: nothing Alternatives are:
     8... to: nothing
     9with resolved type:
     10  void  Alternatives are:
    911Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
    1012      Application of
     
    2022
    2123
     24        with resolved type:
     25          pointer to forall
     26            _89_4_DT: data type
     27            function
     28          ... with parameters
     29            intrinsic pointer to instance of type _89_4_DT (not function type)
     30          ... returning
     31            _retval__operator_deref: reference to instance of type _89_4_DT (not function type)
     32            ... with attributes:
     33              Attribute with name: unused
     34
     35
    2236      ... to arguments
    2337        Variable Expression: x: pointer to instance of struct A with body 0
    24 
     38        with resolved type:
     39          pointer to instance of struct A with body 0
     40
     41      with resolved type:
     42        reference to instance of struct A with body 0
    2543    ... to: nothing
     44    with resolved type:
     45      void
    2646  (types:
    2747    void
     
    4363
    4464
     65        with resolved type:
     66          pointer to forall
     67            _89_4_DT: data type
     68            function
     69          ... with parameters
     70            intrinsic pointer to instance of type _89_4_DT (not function type)
     71          ... returning
     72            _retval__operator_deref: reference to instance of type _89_4_DT (not function type)
     73            ... with attributes:
     74              Attribute with name: unused
     75
     76
    4577      ... to arguments
    4678        Variable Expression: x: pointer to instance of struct B with body 1
    47 
     79        with resolved type:
     80          pointer to instance of struct B with body 1
     81
     82      with resolved type:
     83        reference to instance of struct B with body 1
    4884    ... to: nothing
     85    with resolved type:
     86      void
    4987  (types:
    5088    void
     
    121159            ... returning nothing
    122160
     161            with resolved type:
     162              pointer to forall
     163                _108_0_T: sized data type
     164                ... with assertions
     165                  ?=?: pointer to function
     166                  ... with parameters
     167                    reference to instance of type _108_0_T (not function type)
     168                    instance of type _108_0_T (not function type)
     169                  ... returning
     170                    _retval__operator_assign: instance of type _108_0_T (not function type)
     171                    ... with attributes:
     172                      Attribute with name: unused
     173
     174
     175                  ?{}: pointer to function
     176                  ... with parameters
     177                    reference to instance of type _108_0_T (not function type)
     178                  ... returning nothing
     179
     180                  ?{}: pointer to function
     181                  ... with parameters
     182                    reference to instance of type _108_0_T (not function type)
     183                    instance of type _108_0_T (not function type)
     184                  ... returning nothing
     185
     186                  ^?{}: pointer to function
     187                  ... with parameters
     188                    reference to instance of type _108_0_T (not function type)
     189                  ... returning nothing
     190
     191
     192                function
     193              ... with parameters
     194                pointer to instance of type _108_0_T (not function type)
     195              ... returning nothing
     196
    123197          ... to arguments
    124198            Variable Expression: z: pointer to instance of type T (not function type)
    125 
     199            with resolved type:
     200              pointer to instance of type T (not function type)
     201
     202          with resolved type:
     203            void
    126204        (types:
    127205          void
Note: See TracChangeset for help on using the changeset viewer.