Changes in / [ebc0a85:f57dd25]


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Convert.cpp

    rebc0a85 rf57dd25  
    1010// Created On       : Thu May 09 15::37::05 2019
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Tue May 28 12:00:00 2019
    13 // Update Count     : 7
     12// Last Modified On : Wed May 29 11:05:00 2019
     13// Update Count     : 8
    1414//
    1515
     
    2525#include "AST/TypeSubstitution.hpp"
    2626
     27#include "SymTab/Autogen.h"
    2728#include "SynTree/Attribute.h"
    2829#include "SynTree/Declaration.h"
     
    4041        }
    4142};
     43
     44//================================================================================================
     45namespace {
     46
     47// This is to preserve the SymTab::dereferenceOperator hack. It does not (and perhaps should not)
     48// allow us to use the same stratagy in the new ast.
     49ast::FunctionDecl * dereferenceOperator = nullptr;
     50
     51}
    4252
    4353//================================================================================================
     
    159169                );
    160170                decl->withExprs = get<Expression>().acceptL( node->withExprs );
     171                if ( dereferenceOperator == node ) {
     172                        SymTab::dereferenceOperator = decl;
     173                }
    161174                return declWithTypePostamble( decl, node );
    162175        }
     
    14351448
    14361449                this->node = decl;
     1450
     1451                if ( SymTab::dereferenceOperator == old ) {
     1452                        dereferenceOperator = decl;
     1453                }
    14371454        }
    14381455
     
    14801497        virtual void visit( EnumDecl * old ) override final {
    14811498                if ( inCache( old ) ) return;
    1482                 auto decl = new ast::UnionDecl(
     1499                auto decl = new ast::EnumDecl(
    14831500                        old->location,
    14841501                        old->name,
     
    15001517        virtual void visit( TraitDecl * old ) override final {
    15011518                if ( inCache( old ) ) return;
    1502                 auto decl = new ast::UnionDecl(
     1519                auto decl = new ast::TraitDecl(
    15031520                        old->location,
    15041521                        old->name,
Note: See TracChangeset for help on using the changeset viewer.