Open
Description
Imports from import file fails
Lets create bar.py (bar.py is in the same directory as expr7)
bar.py:
from expr7 import test_pow
def main():
test_pow()
main()
expr7.py:
from ltypes import i32
def test_pow():
a: i32
a = i32(pow(2, 2))
def test_pow_1(a: i32, b: i32) -> i32:
res: i32
res = i32(pow(a, b))
return res
def main0():
test_pow()
c: i32
c = test_pow_1(1, 2)
main0()
*** Please notice main0() call
Run:
lpython --show-c -I . bar.py
Getting the following error
ASR verify pass error: ASR verify: SubroutineCall::m_name 'main0' cannot point outside of its symbol table
Internal Compiler Error: Unhandled exception
Traceback (most recent call last):
File "/Users/ronnuriel/git/lpython/src/bin/lpython.cpp", line 1609
return emit_c(arg_file, runtime_library_dir, compiler_options);
File "/Users/ronnuriel/git/lpython/src/bin/lpython.cpp", line 288
r1 = LCompilers::LPython::python_ast_to_asr(al, lm, *ast, diagnostics, compiler_options, true, infile);
File "/Users/ronnuriel/git/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 6235
auto res = symbol_table_visitor(al, lm, *ast_m, diagnostics, main_module,
File "/Users/ronnuriel/git/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 3814
v.visit_Module(ast);
File "/Users/ronnuriel/git/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 3302
visit_stmt(*x.m_body[i]);
File "/Users/ronnuriel/git/lpython/src/lpython/python_ast.h", line 1882
void visit_stmt(const stmt_t &b) { visit_stmt_t(b, self()); }
File "/Users/ronnuriel/git/lpython/src/lpython/python_ast.h", line 1768
case stmtType::Import: { v.visit_Import((const Import_t &)x); return; }
File "/Users/ronnuriel/git/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 3635
t = (ASR::symbol_t*)(load_module(al, st,
File "/Users/ronnuriel/git/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 365
mod1 = compile_module_till_asr(al, rl_path, infile, loc, diagnostics,
File "/Users/ronnuriel/git/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 272
Result<ASR::TranslationUnit_t*> r2 = python_ast_to_asr(al, lm, *ast,
File "/Users/ronnuriel/git/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 6262
throw LCompilersException("Verify failed");
LCompilersException: Verify failed