mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Upgrade of mingw in CI. Fix problems using reflection on interface types #1203. Improved debug information on defer. $foreach doesn't create an implicit syntactic scope. Error if `@if` depends on `@if`. Updated Linux stacktrace. Fix of default argument stacktrace. Allow linking libraries directly by file path. Improve inlining warning messages. Added `index_of_char_from`. Compiler crash using enum nameof from different module #1205. Removed unused fields in find_msvc. Use vswhere to find msvc. Update tests for LLVM 19
24 lines
754 B
C
24 lines
754 B
C
module object_test @test;
|
|
import std::collections::object;
|
|
|
|
fn void test_general()
|
|
{
|
|
Object* root = object::new_obj(allocator::heap());
|
|
root.set("foo", 1);
|
|
root.set("bar", "baz");
|
|
assert(root.get_int("foo")! == 1);
|
|
assert(root.get_string("bar")! == "baz");
|
|
Object* goo = root.set("goo", object::new_obj(allocator::heap()));
|
|
goo.push("hello");
|
|
goo.push(132);
|
|
assert(root.get("goo").get_int_at(1)! == 132);
|
|
assert(root.get("goo").get_string_at(0)! == "hello");
|
|
Object* abc = root.get_or_create_obj("abc80");
|
|
abc.set("cool", 1.3);
|
|
assert(root.get("abc80").get_int("cool")! == 1);
|
|
assert(root.get("abc80").get_float("cool")! == 1.3);
|
|
assert((root.get_int("yyy") ?? -1) == -1);
|
|
root.set("yyy", true);
|
|
assert(root.get_bool("yyy") ?? false);
|
|
}
|