aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--typecheck.c33
-rw-r--r--typecheck.h1
2 files changed, 0 insertions, 34 deletions
diff --git a/typecheck.c b/typecheck.c
index 98fb910e..576007a3 100644
--- a/typecheck.c
+++ b/typecheck.c
@@ -1295,39 +1295,6 @@ PUREFUNC bool is_discardable(env_t *env, ast_t *ast)
return (t->tag == VoidType || t->tag == AbortType || t->tag == ReturnType);
}
-type_t *get_file_type(env_t *env, const char *path)
-{
- ast_t *ast = parse_file(path, NULL);
- if (!ast) compiler_err(NULL, NULL, NULL, "Couldn't parse file: %s", path);
-
- arg_t *ns_fields = NULL;
- for (ast_list_t *stmts = Match(ast, Block)->statements; stmts; stmts = stmts->next) {
- ast_t *stmt = stmts->ast;
- doctest_inner:
- switch (stmt->tag) {
- case Declare: {
- auto decl = Match(stmt, Declare);
- const char *name = Match(decl->var, Var)->name;
- type_t *t = get_type(env, decl->value);
- ns_fields = new(arg_t, .name=name, .type=t, .next=ns_fields);
- break;
- }
- case FunctionDef: {
- type_t *t = get_function_def_type(env, stmt);
- const char *name = Match(Match(stmt, FunctionDef)->name, Var)->name;
- ns_fields = new(arg_t, .name=name, .type=t, .next=ns_fields);
- break;
- }
- case DocTest: {
- stmt = Match(stmt, DocTest)->expr;
- goto doctest_inner;
- }
- default: break;
- }
- }
- return Type(StructType, .name=path, .fields=ns_fields);
-}
-
type_t *get_arg_ast_type(env_t *env, arg_ast_t *arg)
{
assert(arg->type || arg->value);
diff --git a/typecheck.h b/typecheck.h
index d328f8b5..1639e1e8 100644
--- a/typecheck.h
+++ b/typecheck.h
@@ -17,7 +17,6 @@ void prebind_statement(env_t *env, ast_t *statement);
void bind_statement(env_t *env, ast_t *statement);
PUREFUNC type_t *get_math_type(env_t *env, ast_t *ast, type_t *lhs_t, type_t *rhs_t);
PUREFUNC bool is_discardable(env_t *env, ast_t *ast);
-type_t *get_file_type(env_t *env, const char *path);
type_t *get_function_def_type(env_t *env, ast_t *ast);
type_t *get_arg_type(env_t *env, arg_t *arg);
type_t *get_arg_ast_type(env_t *env, arg_ast_t *arg);