Add closure tests

This commit is contained in:
ala89 2024-01-04 22:25:05 +01:00
parent b3cdc2af4f
commit 279ccb5432

View File

@ -110,5 +110,47 @@ int main() {
true true
); );
_TEST_ASSERT(
_TEST_NO_EXCEPTION(get<int>(execute(R"(
int x = 1;
int a() {
return x;
}
int b() {
int x = 2;
return a();
}
b();
)")) == 1),
"Closure capture",
true
);
_TEST_ASSERT(
_TEST_NO_EXCEPTION(get<int>(execute(R"(
int x = 1;
int a() {
return x;
}
x = 2;
a();
)")) == 2),
"Closure mutation externe",
true
);
_TEST_ASSERT(
_TEST_NO_EXCEPTION(get<int>(execute(R"(
int x = 1;
void a() {
x = 2;
}
a();
x;
)")) == 2),
"Closure mutation interne",
true
);
return 0; return 0;
} }