55    void container(
const IR::IContainer *type);
 
   57    void distinctParameters(
const IR::TypeParameters *typeParams, 
const IR::ParameterList *apply,
 
   58                            const IR::ParameterList *constr);
 
   62    void postorder(
const IR::Annotations *annotations) 
override;
 
   63    void postorder(
const IR::P4Program *program) 
override;
 
   64    void postorder(
const IR::Constant *c) 
override;
 
   65    void postorder(
const IR::SwitchStatement *statement) 
override;
 
   66    void postorder(
const IR::Method *t) 
override;
 
   67    void postorder(
const IR::StructField *f) 
override;
 
   68    void postorder(
const IR::ParserState *s) 
override;
 
   69    void postorder(
const IR::P4Table *t) 
override;
 
   70    void postorder(
const IR::Type_Bits *type) 
override;
 
   71    void postorder(
const IR::Type_Varbits *type) 
override;
 
   72    void postorder(
const IR::ConstructorCallExpression *expression) 
override;
 
   73    void postorder(
const IR::Declaration_Variable *decl) 
override;
 
   74    void postorder(
const IR::Declaration_Instance *inst) 
override;
 
   75    void postorder(
const IR::Declaration_Constant *decl) 
override;
 
   76    void postorder(
const IR::EntriesList *l) 
override;
 
   77    void postorder(
const IR::ReturnStatement *statement) 
override;
 
   78    void postorder(
const IR::ExitStatement *statement) 
override;
 
   79    void postorder(
const IR::Type_Package *package)
 override { container(package); }
 
   80    void postorder(
const IR::P4Control *control)
 override {
 
   82        distinctParameters(control->getTypeParameters(), control->getApplyParameters(),
 
   83                           control->getConstructorParameters());
 
   85    void postorder(
const IR::P4Parser *parser)
 override {
 
   86        auto start = parser->states.getDeclaration(IR::ParserState::start);
 
   88            ::error(ErrorType::ERR_INVALID, 
"Parser %1% has no 'start' state", parser);
 
   91        distinctParameters(parser->getTypeParameters(), parser->getApplyParameters(),
 
   92                           parser->getConstructorParameters());
 
   94    void postorder(
const IR::Dots *dots) 
override;
 
   95    void postorder(
const IR::BreakStatement *s) 
override;
 
   96    void postorder(
const IR::ContinueStatement *s) 
override;