diff options
Diffstat (limited to 'src/resp.hpp')
-rw-r--r-- | src/resp.hpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/resp.hpp b/src/resp.hpp index 1edf9e6..34106f4 100644 --- a/src/resp.hpp +++ b/src/resp.hpp @@ -353,6 +353,7 @@ struct AType : public ATuple { if (kid && !kid->concrete()) return false; } + case DOTS: return false; } return true; } @@ -365,6 +366,7 @@ struct AType : public ATuple { case VAR: return id == rt->id; case PRIM: return head()->str() == rt->head()->str(); case EXPR: return ATuple::operator==(rhs); + case DOTS: return true; } return false; // never reached } @@ -697,7 +699,7 @@ struct Engine { virtual CVal compilePrimitive(CEnv& cenv, APrimitive* prim) = 0; virtual CVal compileIf(CEnv& cenv, AIf* aif) = 0; virtual CVal compileGlobal(CEnv& cenv, const AType* t, const string& sym, CVal val) = 0; - virtual CVal getGlobal(CEnv& cenv, CVal val) = 0; + virtual CVal getGlobal(CEnv& cenv, const string& sym, CVal val) = 0; virtual void writeModule(CEnv& cenv, std::ostream& os) = 0; virtual const string call(CEnv& cenv, CFunc f, const AType* retT) = 0; |