Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/porting.md

    r3aec25f r033ff37  
    3030  * Base nodes now override `const Node * accept( Visitor & v ) const = 0` with, e.g. `const Stmt * accept( Visitor & v ) const override = 0`
    3131* `PassVisitor` is replaced with `ast::Pass`
    32   * Most one shot uses can use `ast::Pass::run` and `ast::Pass::read`.
    33 
    34 `WithConstTypeSubstitution`
    35 * `env` => `typeSubs`
    3632
    3733## Structural Changes ##
     
    5147      template<typename node_t>
    5248      friend node_t * mutate(const node_t * node);
    53       template<typename node_t>
    54       friend node_t * shallowCopy(const node_t * node);
    55     or equilant.
    56 * You should use the `mutate` function where possible as it avoids extra copies.
    57   * If you must copy use `shallowCopy` or `deepCopy` as required.
    5849
    5950All leaves of the `Node` inheritance tree are now declared `final`
     
    150141  * allows `newObject` as just default settings
    151142
    152 `FunctionDecl`
    153 * `params` and `returns` added.
    154   * Contain the declarations of the parameters and return variables.
    155   * Types should match (even be shared with) the fields of `type`.
    156 
    157143`NamedTypeDecl`
    158144* `parameters` => `params`
     
    163149`AggregateDecl`
    164150* `parameters` => `params`
    165 
    166 `StructDecl`
    167 * `makeInst` replaced by better constructor on `StructInstType`.
    168151
    169152`Expr`
     
    257240* **TODO** move `kind`, `typeNames` into code generator
    258241
    259 `ReferenceToType` => `BaseInstType`
     242`ReferenceToType`
    260243* deleted `get_baseParameters()` from children
    261244  * replace with `aggr() ? aggr()->params : nullptr`
     
    273256* `returnVals` => `returns`
    274257* `parameters` => `params`
    275   * Both now just point at types.
    276258* `bool isVarArgs;` => `enum ArgumentFlag { FixedArgs, VariableArgs }; ArgumentFlag isVarArgs;`
    277 
    278 `SueInstType`
    279 * Template class, with specializations and using to implement some other types:
    280   * `StructInstType`, `UnionInstType` & `EnumInstType`
    281259
    282260`TypeInstType`
Note: See TracChangeset for help on using the changeset viewer.