• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ArkScript-lang / Ark / 16728224339

04 Aug 2025 04:05PM UTC coverage: 86.247% (-0.5%) from 86.737%
16728224339

push

github

SuperFola
chore: reformat cpp code

1 of 1 new or added line in 1 file covered. (100.0%)

36 existing lines in 7 files now uncovered.

7431 of 8616 relevant lines covered (86.25%)

126711.42 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

90.36
/src/arkreactor/VM/Value.cpp
1
#include <Ark/VM/Value.hpp>
2
#include <Ark/VM/Value/Procedure.hpp>
3
#include <Ark/VM/Value/Dict.hpp>
4

5
#include <fmt/format.h>
6
#include <fmt/ostream.h>
7

8
namespace Ark
9
{
10
    Value::Value() noexcept :
2,200,277✔
11
        m_type(ValueType::Undefined)
2,200,277✔
12
    {}
4,400,554✔
13

14
    Value::Value(ValueType type) noexcept :
1,903✔
15
        m_type(type)
1,903✔
16
    {
1,903✔
17
        if (type == ValueType::List)
1,903✔
18
            m_value = List_t();
1,833✔
19
        else if (type == ValueType::String)
70✔
20
            m_value = std::string();
51✔
21
    }
1,903✔
22

23
    Value::Value(const int value) noexcept :
19,835✔
24
        m_type(ValueType::Number), m_value(static_cast<double>(value))
19,835✔
25
    {}
39,670✔
26

27
    Value::Value(const double value) noexcept :
356,579✔
28
        m_type(ValueType::Number), m_value(value)
356,579✔
29
    {}
713,158✔
30

31
    Value::Value(const String_t& value) noexcept :
19,794✔
32
        m_type(ValueType::String), m_value(value)
19,794✔
33
    {}
39,588✔
34

35
    Value::Value(const char* value) noexcept :
5✔
36
        m_type(ValueType::String), m_value(std::string(value))
5✔
37
    {}
5✔
38

39
    Value::Value(internal::PageAddr_t value) noexcept :
143,736✔
40
        m_type(ValueType::PageAddr), m_value(value)
143,736✔
41
    {}
287,472✔
42

43
    Value::Value(Procedure&& value) noexcept :
62✔
44
        m_type(ValueType::CProc), m_value(std::move(value))
62✔
45
    {}
62✔
46

47
    Value::Value(List_t&& value) noexcept :
81✔
48
        m_type(ValueType::List), m_value(std::move(value))
81✔
49
    {}
81✔
50

51
    Value::Value(internal::Closure&& value) noexcept :
2,149✔
52
        m_type(ValueType::Closure), m_value(std::move(value))
2,149✔
53
    {}
2,149✔
54

55
    Value::Value(UserType&& value) noexcept :
7✔
56
        m_type(ValueType::User), m_value(value)
7✔
57
    {}
7✔
58

59
    Value::Value(Dict_t&& value) noexcept :
10✔
60
        m_type(ValueType::Dict), m_value(std::make_shared<Dict_t>(std::move(value)))
10✔
61
    {}
20✔
62

63
    Value::Value(Ref_t ref) noexcept :
31,817✔
64
        m_type(ValueType::Reference), m_value(ref)
31,817✔
65
    {}
63,634✔
66

67
    void Value::push_back(const Value& value)
4,493✔
68
    {
4,493✔
69
        list().emplace_back(value);
4,493✔
70
    }
4,493✔
71

UNCOV
72
    void Value::push_back(Value&& value)
×
UNCOV
73
    {
×
UNCOV
74
        list().emplace_back(std::move(value));
×
UNCOV
75
    }
×
76

77
    std::string Value::toString(VM& vm) const noexcept
626✔
78
    {
626✔
79
        switch (valueType())
626✔
80
        {
243✔
81
            case ValueType::Number:
82
                return fmt::format("{}", number());
601✔
83

84
            case ValueType::String:
85
                return string();
358✔
86

87
            case ValueType::PageAddr:
88
                return fmt::format("Function@{}", pageAddr());
1✔
89

90
            case ValueType::CProc:
91
                return "CProcedure";
11✔
92

93
            case ValueType::List:
94
            {
95
                std::string out = "[";
10✔
96
                for (auto it = constList().begin(), it_end = constList().end(); it != it_end; ++it)
37✔
97
                {
98
                    if (it->valueType() == ValueType::String)
27✔
99
                        out += "\"" + it->toString(vm) + "\"";
4✔
100
                    else
101
                        out += it->toString(vm);
23✔
102
                    if (it + 1 != it_end)
27✔
103
                        out += " ";
17✔
104
                }
27✔
105
                return out + "]";
10✔
106
            }
11✔
107

108
            case ValueType::Closure:
109
                return closure().toString(vm);
1✔
110

111
            case ValueType::User:
UNCOV
112
                return fmt::format("{}", fmt::streamed(usertype()));
×
113

114
            case ValueType::Dict:
115
                return dict().toString(vm);
4✔
116

117
            case ValueType::Nil:
118
                return "nil";
6✔
119

120
            case ValueType::True:
121
                return "true";
3✔
122

123
            case ValueType::False:
124
                return "false";
1✔
125

126
            case ValueType::Undefined:
127
                return "undefined";
6✔
128

129
            case ValueType::Reference:
130
                if (reference() != this)
6✔
131
                    return reference()->toString(vm);
6✔
UNCOV
132
                return "Ref(self)";
×
133

134
            case ValueType::InstPtr:
UNCOV
135
                return fmt::format("Instruction@{}", pageAddr());
×
136

137
            default:
UNCOV
138
                return "~\\._./~";
×
139
        }
140
    }
626✔
141
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc