@@ -73,7 +73,7 @@ class any {
73 StringLiteral,
73 StringLiteral,
@@ -84,7 +84,6 @@ class any {
86 mutable Type type = Type::Unknown;
86 mutable Type type = Type::Unknown;
87− using vector = std::vector<any>;
90 struct as_thunk {
89 struct as_thunk {
@@ -92,7 +91,7 @@ class any {
92 static constexpr as_thunk unthunk = as_thunk{};
91 static constexpr as_thunk unthunk = as_thunk{};
94 using map = std::vector<std::pair<const char * const, const any>>;
93 using map = std::vector<std::pair<const char * const, const any>>;
95− using data = vector;
94+ using data = std::vector<any>;
96 using array = std::deque<any>;
95 using array = std::deque<any>;
97 using fn = auto (*)(const any&) -> any;
96 using fn = auto (*)(const any&) -> any;
98 using thunk = auto (*)(const as_thunk) -> const any&;
97 using thunk = auto (*)(const as_thunk) -> const any&;
@@ -194,7 +193,7 @@ class any {
194 mutable string r;
193 mutable string r;
195 mutable shared<std::string> s;
194 mutable shared<std::string> s;
196 mutable shared<map> m;
195 mutable shared<map> m;
197− mutable shared<vector> v;
196+ mutable shared<data> v;
198 mutable shared<array> a;
197 mutable shared<array> a;
199 mutable fn f;
198 mutable fn f;
200 mutable shared<closure> l;
199 mutable shared<closure> l;
@@ -227,8 +226,8 @@ class any {
227 any(const map& val) : type(Type::Map), m(make_shared<map>(val)) {}
226 any(const map& val) : type(Type::Map), m(make_shared<map>(val)) {}
228 any(map&& val) noexcept : type(Type::Map), m(make_shared<map>(std::move(val))) {}
227 any(map&& val) noexcept : type(Type::Map), m(make_shared<map>(std::move(val))) {}
230− any(const vector& val) : type(Type::Vector), v(make_shared<vector>(val)) {}
229+ any(const data& val) : type(Type::Data), v(make_shared<data>(val)) {}
231− any(vector&& val) noexcept : type(Type::Vector), v(make_shared<vector>(std::move(val))) {}
230+ any(data&& val) noexcept : type(Type::Data), v(make_shared<data>(std::move(val))) {}
233 any(const array& val) : type(Type::Array), a(make_shared<array>(val)) {}
232 any(const array& val) : type(Type::Array), a(make_shared<array>(val)) {}
234 any(array&& val) noexcept : type(Type::Array), a(make_shared<array>(std::move(val))) {}
233 any(array&& val) noexcept : type(Type::Array), a(make_shared<array>(std::move(val))) {}
@@ -302,7 +301,7 @@ class any {
302 auto cast() const -> typename std::enable_if<std::is_same<T, map>::value, const T&>::type;
301 auto cast() const -> typename std::enable_if<std::is_same<T, map>::value, const T&>::type;
304 template <typename T>
303 template <typename T>
305− auto cast() const -> typename std::enable_if<std::is_same<T, vector>::value, const T&>::type;
304+ auto cast() const -> typename std::enable_if<std::is_same<T, data>::value, const T&>::type;
307 template <typename T>
306 template <typename T>
308 auto cast() const -> typename std::enable_if<std::is_same<T, array>::value, const T&>::type;
307 auto cast() const -> typename std::enable_if<std::is_same<T, array>::value, const T&>::type;
@@ -326,7 +325,7 @@ class any {
327 operator string() const;
326 operator string() const;
328 operator const map&() const;
327 operator const map&() const;
329− operator const vector&() const;
328+ operator const data&() const;
330 operator const array&() const;
329 operator const array&() const;
332 auto operator[](const char[]) const -> const any&;
331 auto operator[](const char[]) const -> const any&;