Changeset d18540f for src


Ignore:
Timestamp:
Dec 19, 2022, 4:44:03 PM (16 months ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
ADT, ast-experimental, master
Children:
1afda5a2
Parents:
d0bdb18
Message:

Cleaning old box pass for easier translation. Cleaning unused code out of Pass3, it was tracking information it never used.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/GenPoly/Box.cc

    rd0bdb18 rd18540f  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Dec 13 23:40:34 2019
    13 // Update Count     : 347
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Mon Dec 19 16:36:00 2022
     13// Update Count     : 348
    1414//
    1515
     
    214214                /// sizeof expressions of polymorphic types with the proper variable,
    215215                /// and strips fields from generic struct declarations.
    216                 struct Pass3 final : public BoxPass, public WithGuards {
    217                         template< typename DeclClass >
    218                         void handleDecl( DeclClass * decl, Type * type );
    219 
     216                struct Pass3 final {
    220217                        void premutate( ObjectDecl * objectDecl );
    221218                        void premutate( FunctionDecl * functionDecl );
     
    223220                        void premutate( StructDecl * structDecl );
    224221                        void premutate( UnionDecl * unionDecl );
    225                         void premutate( TypeDecl * typeDecl );
    226                         void premutate( PointerType * pointerType );
    227                         void premutate( FunctionType * funcType );
    228222                };
    229223        } // anonymous namespace
     
    18861880////////////////////////////////////////// Pass3 ////////////////////////////////////////////////////
    18871881
    1888                 template< typename DeclClass >
    1889                 void Pass3::handleDecl( DeclClass * decl, Type * type ) {
    1890                         GuardScope( scopeTyVars );
    1891                         makeTyVarMap( type, scopeTyVars );
    1892                         ScrubTyVars::scrubAll( decl );
    1893                 }
    1894 
    18951882                void Pass3::premutate( ObjectDecl * objectDecl ) {
    1896                         handleDecl( objectDecl, objectDecl->type );
     1883                        ScrubTyVars::scrubAll( objectDecl );
    18971884                }
    18981885
    18991886                void Pass3::premutate( FunctionDecl * functionDecl ) {
    1900                         handleDecl( functionDecl, functionDecl->type );
     1887                        ScrubTyVars::scrubAll( functionDecl );
    19011888                }
    19021889
    19031890                void Pass3::premutate( TypedefDecl * typedefDecl ) {
    1904                         handleDecl( typedefDecl, typedefDecl->base );
     1891                        ScrubTyVars::scrubAll( typedefDecl );
    19051892                }
    19061893
    19071894                /// Strips the members from a generic aggregate
    1908                 void stripGenericMembers(AggregateDecl * decl) {
     1895                static void stripGenericMembers( AggregateDecl * decl ) {
    19091896                        if ( ! decl->parameters.empty() ) decl->members.clear();
    19101897                }
     
    19161903                void Pass3::premutate( UnionDecl * unionDecl ) {
    19171904                        stripGenericMembers( unionDecl );
    1918                 }
    1919 
    1920                 void Pass3::premutate( TypeDecl * typeDecl ) {
    1921                         addToTyVarMap( typeDecl, scopeTyVars );
    1922                 }
    1923 
    1924                 void Pass3::premutate( PointerType * pointerType ) {
    1925                         GuardScope( scopeTyVars );
    1926                         makeTyVarMap( pointerType, scopeTyVars );
    1927                 }
    1928 
    1929                 void Pass3::premutate( FunctionType * functionType ) {
    1930                         GuardScope( scopeTyVars );
    1931                         makeTyVarMap( functionType, scopeTyVars );
    19321905                }
    19331906        } // anonymous namespace
     
    19391912// compile-command: "make install" //
    19401913// End: //
    1941 
Note: See TracChangeset for help on using the changeset viewer.