diff --git a/nautilus/include/nautilus/static.hpp b/nautilus/include/nautilus/static.hpp index df6f78ab..8fa169d0 100644 --- a/nautilus/include/nautilus/static.hpp +++ b/nautilus/include/nautilus/static.hpp @@ -159,12 +159,12 @@ class static_iterable { static_iterable(Container& container) : m_container(container) { } - static_iterator begin() { - return static_iterator(m_container.begin()); + auto begin() { + return static_iterator(m_container.begin()); } - static_iterator end() { - return static_iterator(m_container.end()); + auto end() { + return static_iterator(m_container.end()); } private: diff --git a/nautilus/test/execution-tests/StaticLoopFunctions.hpp b/nautilus/test/execution-tests/StaticLoopFunctions.hpp index b9aa4196..ee9b9276 100644 --- a/nautilus/test/execution-tests/StaticLoopFunctions.hpp +++ b/nautilus/test/execution-tests/StaticLoopFunctions.hpp @@ -47,6 +47,18 @@ val staticIterator(val ref) { return sum; } +const std::vector constVec = {1, 2, 3, 4, 5}; + +val staticConstIterator(val ref) { + val sum = 0; + for (auto x : static_iterable(constVec)) { + if (ref > x) { + sum = sum + 1; + } + } + return sum; +} + val staticLoopIncrement() { val agg = val(1); for (static_val start = 0; start < 10; start++) { diff --git a/nautilus/test/execution-tests/TracingTest.cpp b/nautilus/test/execution-tests/TracingTest.cpp index bbbeef5b..f05d1b55 100644 --- a/nautilus/test/execution-tests/TracingTest.cpp +++ b/nautilus/test/execution-tests/TracingTest.cpp @@ -213,9 +213,10 @@ TEST_CASE("Loop Trace Test") { TEST_CASE("Static Trace Test") { auto tests = std::vector>> {{"staticLoop", details::createFunctionWrapper(staticLoop)}, - // {"staticLoopWithIf", details::createFunctionWrapper(staticLoopWithIf)}, + {"staticLoopWithIf", details::createFunctionWrapper(staticLoopWithIf)}, {"staticLoopWithDynamicLoop", details::createFunctionWrapper(staticLoopWithDynamicLoop)}, - // {"staticIterator", details::createFunctionWrapper(staticIterator)}, + {"staticIterator", details::createFunctionWrapper(staticIterator)}, + {"staticConstIterator", details::createFunctionWrapper(staticConstIterator)}, {"staticLoopIncrement", details::createFunctionWrapper(staticLoopIncrement)}, {"staticWhileLoopDecrement", details::createFunctionWrapper(staticWhileLoopDecrement)}}; runTraceTests(tests);