new object creation interface

This commit is contained in:
IlyaShurupov 2024-03-25 10:25:25 +03:00
parent c737f41d8a
commit e937d189df
23 changed files with 103 additions and 84 deletions

View file

@ -18,7 +18,7 @@ SUITE(Compiler) {
{
// no errors
auto method = objects_api::cast<MethodObject>(NDO->create("method"));
auto method = objects_api::create<MethodObject>();
method->mScript->mReadable->val = "print 1 * 20 + 10;";
method->compile();
@ -30,7 +30,7 @@ SUITE(Compiler) {
{
// with errors
auto method = objects_api::cast<MethodObject>(NDO->create("method"));
auto method = objects_api::create<MethodObject>();
method->mScript->mReadable->val = "print undefinedVariable;";
method->compile();

View file

@ -13,7 +13,7 @@ SUITE(Core) {
objTestModule.initialize();
{
auto integer = objects_api::cast<IntObject>(NDO->create("int"));
auto integer = objects_api::create<IntObject>();
integer->val = 10;

View file

@ -49,8 +49,8 @@ SUITE(Interpreter) {
objTestModule.initialize();
{
auto method = objects_api::cast<MethodObject>(NDO->create("method"));
auto interpreter = objects_api::cast<InterpreterObject>(NDO->create("interpreter"));
auto method = objects_api::create<MethodObject>();
auto interpreter = objects_api::create<InterpreterObject>();
interpreter->getMember<LinkObject>("target method")->setLink(method);
@ -71,8 +71,8 @@ SUITE(Interpreter) {
objTestModule.initialize();
{
auto method = objects_api::cast<MethodObject>(NDO->create("method"));
auto interpreter = objects_api::cast<InterpreterObject>(NDO->create("interpreter"));
auto method = objects_api::create<MethodObject>();
auto interpreter = objects_api::create<InterpreterObject>();
interpreter->getMember<LinkObject>("target method")->setLink(method);
@ -102,8 +102,8 @@ SUITE(Interpreter) {
{
auto compileStartCount = getObjCount();
auto method = objects_api::cast<MethodObject>(NDO->create("method"));
auto interpreter = objects_api::cast<InterpreterObject>(NDO->create("interpreter"));
auto method = objects_api::create<MethodObject>();
auto interpreter = objects_api::create<InterpreterObject>();
interpreter->getMember<LinkObject>("target method")->setLink(method);
@ -143,8 +143,8 @@ SUITE(Interpreter) {
objTestModule.initialize();
{
auto method = objects_api::cast<MethodObject>(NDO->create("method"));
auto interpreter = objects_api::cast<InterpreterObject>(NDO->create("interpreter"));
auto method = objects_api::create<MethodObject>();
auto interpreter = objects_api::create<InterpreterObject>();
interpreter->getMember<LinkObject>("target method")->setLink(method);

View file

@ -16,10 +16,10 @@ SUITE(PrimitiveObjects) {
objTestModule.initialize();
{
auto integer = objects_api::cast<IntObject>(NDO->create("int"));
auto integer = objects_api::create<IntObject>();
integer->val = 10;
auto dict = objects_api::cast<DictObject>(NDO->create("dict"));
auto dict = objects_api::create<DictObject>();
dict->put("val", integer);
@ -27,7 +27,7 @@ SUITE(PrimitiveObjects) {
auto dictLoaded = objects_api::cast<DictObject>(NDO->load("dict.o"));
CHECK(dictLoaded->presents("val").isValid());
REQUIRE CHECK(dictLoaded->presents("val").isValid());
CHECK(objects_api::cast<IntObject>(dictLoaded->get("val"))->val == 10);
NDO->destroy(dict);