erg/compiler/erg_compiler/context/initialize/py_mods/io.rs
2022-10-18 00:25:47 +09:00

34 lines
919 B
Rust

use erg_common::vis::Visibility;
use crate::ty::constructors::{mono, pr0_met, ref_};
use crate::ty::Type;
use Type::*;
use crate::context::Context;
use crate::varinfo::Mutability;
use Mutability::*;
use Visibility::*;
impl Context {
pub(crate) fn init_py_io_mod() -> Self {
let mut io = Context::builtin_module("io", 15);
let mut string_io = Context::builtin_mono_class("StringIO!", 0);
// FIXME: include Obj (pass main_ctx as a param)
// string_io.register_superclass(Obj, obj);
string_io.register_builtin_py_impl(
"getvalue!",
pr0_met(ref_(mono("io.StringIO!")), Str),
Immutable,
Public,
Some("getvalue"),
);
io.register_builtin_type(
mono("io.StringIO!"),
string_io,
Public,
Const,
Some("io.StringIO"),
);
io
}
}