tipc
A TIP to LLVM compiler
Public Member Functions | Static Public Member Functions | List of all members
Copier Class Reference

Makes a copy of a TipType. More...

#include <Copier.h>

Inheritance diagram for Copier:
Inheritance graph
[legend]
Collaboration diagram for Copier:
Collaboration graph
[legend]

Public Member Functions

 Copier ()=default
 
virtual void endVisit (TipAlpha *element) override
 
virtual void endVisit (TipVar *element) override
 Substitute if variable is the target. More...
 
- Public Member Functions inherited from Substituter
 Substituter (TipVar *t, std::shared_ptr< TipType > s)
 
std::shared_ptr< TipTypegetResult ()
 
virtual void endVisit (TipFunction *element) override
 
virtual void endVisit (TipInt *element) override
 
virtual void endVisit (TipMu *element) override
 
virtual void endVisit (TipRecord *element) override
 
virtual void endVisit (TipAbsentField *element) override
 
virtual void endVisit (TipRef *element) override
 
- Public Member Functions inherited from TipTypeVisitor
virtual bool visit (TipAlpha *element)
 
virtual bool visit (TipFunction *element)
 
virtual bool visit (TipInt *element)
 
virtual bool visit (TipMu *element)
 
virtual bool visit (TipRecord *element)
 
virtual bool visit (TipAbsentField *element)
 
virtual bool visit (TipRef *element)
 
virtual bool visit (TipVar *element)
 

Static Public Member Functions

static std::shared_ptr< TipTypecopy (std::shared_ptr< TipType > s)
 
- Static Public Member Functions inherited from Substituter
static std::shared_ptr< TipTypesubstitute (TipType *t, TipVar *v, std::shared_ptr< TipType > s)
 Substitute for instances of variable in a target type. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Substituter
 Substituter ()=default
 
- Protected Attributes inherited from Substituter
std::vector< std::shared_ptr< TipType > > visitedTypes
 

Detailed Description

Makes a copy of a TipType.

This subtype of the Substituter overrides the behavior for TipVar and TipAlpha to just copy that node rather than perform a substitution.

Constructor & Destructor Documentation

◆ Copier()

Copier::Copier ( )
default

Member Function Documentation

◆ copy()

std::shared_ptr< TipType > Copier::copy ( std::shared_ptr< TipType s)
static

◆ endVisit() [1/2]

void Copier::endVisit ( TipAlpha element)
overridevirtual

Reimplemented from Substituter.

Reimplemented in FreshAlphaCopier.

◆ endVisit() [2/2]

void Copier::endVisit ( TipVar element)
overridevirtual

Substitute if variable is the target.

Reimplemented from Substituter.


The documentation for this class was generated from the following files: