コード例 #1
0
ファイル: EnvironmentTest.cpp プロジェクト: gonboy/uaiso
    void testCase4()
    {
        std::unique_ptr<Ident> a(new Ident("a"));
        Var* s = new Var(a.get());
        Environment env;
        env.insertValueDecl(std::unique_ptr<const Var>(s));
        std::unique_ptr<Ident> b(new Ident("b"));
        Func* t = new Func(b.get());
        t->setEnv(env.createSubEnv());
        t->env().insertTypeDecl(std::unique_ptr<const TypeDecl>(t));
        env.insertTypeDecl(std::unique_ptr<const TypeDecl>(t));

        UAISO_EXPECT_TRUE(env.searchValueDecl(a.get()));
        UAISO_EXPECT_TRUE(env.searchTypeDecl(b.get()));
        const Func* t_env = ConstFunc_Cast(env.searchTypeDecl(b.get()));
        UAISO_EXPECT_TRUE(t_env->env().searchValueDecl(a.get()));
    }