Commit d458b0a1 authored by Giuseppe Ottaviano's avatar Giuseppe Ottaviano Committed by Facebook Github Bot

Remove dynamic's initializer_list constructor

Summary: It has been deprecated for several months, time to nuke it.

Reviewed By: yfeldblum

Differential Revision: D4045250

fbshipit-source-id: 21b55a7c99602c42b1a87ced6a59788fe0ac25d7
parent fbf4e10c
...@@ -212,7 +212,7 @@ inline void dynamic::array(EmptyArrayTag) {} ...@@ -212,7 +212,7 @@ inline void dynamic::array(EmptyArrayTag) {}
template <class... Args> template <class... Args>
inline dynamic dynamic::array(Args&& ...args) { inline dynamic dynamic::array(Args&& ...args) {
return dynamic(Array{std::forward<Args>(args)...}, PrivateTag()); return dynamic(Array{std::forward<Args>(args)...});
} }
// This looks like a case for perfect forwarding, but our use of // This looks like a case for perfect forwarding, but our use of
...@@ -309,14 +309,6 @@ inline dynamic::dynamic(std::string&& s) : type_(STRING) { ...@@ -309,14 +309,6 @@ inline dynamic::dynamic(std::string&& s) : type_(STRING) {
new (&u_.string) std::string(std::move(s)); new (&u_.string) std::string(std::move(s));
} }
inline dynamic::dynamic(std::initializer_list<dynamic> il)
: dynamic(Array(std::move(il)), PrivateTag()) {}
inline dynamic& dynamic::operator=(std::initializer_list<dynamic> il) {
(*this) = dynamic(Array(std::move(il)), PrivateTag());
return *this;
}
inline dynamic::dynamic(ObjectMaker&& maker) inline dynamic::dynamic(ObjectMaker&& maker)
: type_(OBJECT) : type_(OBJECT)
{ {
...@@ -674,7 +666,7 @@ inline void dynamic::pop_back() { ...@@ -674,7 +666,7 @@ inline void dynamic::pop_back() {
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
inline dynamic::dynamic(Array&& r, PrivateTag) : type_(ARRAY) { inline dynamic::dynamic(Array&& r) : type_(ARRAY) {
new (&u_.array) Array(std::move(r)); new (&u_.array) Array(std::move(r));
} }
......
...@@ -63,7 +63,6 @@ ...@@ -63,7 +63,6 @@
#pragma once #pragma once
#include <cstdint> #include <cstdint>
#include <initializer_list>
#include <memory> #include <memory>
#include <ostream> #include <ostream>
#include <string> #include <string>
...@@ -135,7 +134,6 @@ public: ...@@ -135,7 +134,6 @@ public:
* d["something_else"] = dynamic::array(1, 2, 3, nullptr); * d["something_else"] = dynamic::array(1, 2, 3, nullptr);
*/ */
private: private:
struct PrivateTag {};
struct EmptyArrayTag {}; struct EmptyArrayTag {};
struct ObjectMaker; struct ObjectMaker;
...@@ -167,22 +165,6 @@ public: ...@@ -167,22 +165,6 @@ public:
/* implicit */ dynamic(ObjectMaker const&) = delete; /* implicit */ dynamic(ObjectMaker const&) = delete;
/* implicit */ dynamic(ObjectMaker&&); /* implicit */ dynamic(ObjectMaker&&);
/*
* Create a new array from an initializer list.
*
* For example:
*
* dynamic v = { 1, 2, 3, "foo" };
*/
// TODO(ott, 10300209): Remove once all uses have been eradicated.
FOLLY_DEPRECATED(
"Initializer list syntax is deprecated (#10300209). Use dynamic::array.")
/* implicit */ dynamic(std::initializer_list<dynamic> il);
FOLLY_DEPRECATED(
"Initializer list syntax is deprecated (#10300209). Use dynamic::array.")
dynamic& operator=(std::initializer_list<dynamic> il);
/* /*
* Conversion constructors from most of the other types. * Conversion constructors from most of the other types.
*/ */
...@@ -543,7 +525,7 @@ private: ...@@ -543,7 +525,7 @@ private:
template<class T> struct GetAddrImpl; template<class T> struct GetAddrImpl;
template<class T> struct PrintImpl; template<class T> struct PrintImpl;
dynamic(Array&& array, PrivateTag); explicit dynamic(Array&& array);
template<class T> T const& get() const; template<class T> T const& get() const;
template<class T> T& get(); template<class T> T& get();
......
...@@ -101,7 +101,7 @@ static dynamic decodeObject(Cursor& curs) { ...@@ -101,7 +101,7 @@ static dynamic decodeObject(Cursor& curs) {
} }
static dynamic decodeTemplate(Cursor& curs) { static dynamic decodeTemplate(Cursor& curs) {
std::vector<dynamic> arr; dynamic arr = folly::dynamic::array;
// List of property names // List of property names
if ((BserType)curs.read<int8_t>() != BserType::Array) { if ((BserType)curs.read<int8_t>() != BserType::Array) {
...@@ -110,7 +110,6 @@ static dynamic decodeTemplate(Cursor& curs) { ...@@ -110,7 +110,6 @@ static dynamic decodeTemplate(Cursor& curs) {
auto names = decodeArray(curs); auto names = decodeArray(curs);
auto size = decodeInt(curs); auto size = decodeInt(curs);
arr.reserve(size);
while (size-- > 0) { while (size-- > 0) {
dynamic obj = dynamic::object; dynamic obj = dynamic::object;
...@@ -126,10 +125,10 @@ static dynamic decodeTemplate(Cursor& curs) { ...@@ -126,10 +125,10 @@ static dynamic decodeTemplate(Cursor& curs) {
obj[name.getString()] = parseBser(curs); obj[name.getString()] = parseBser(curs);
} }
arr.emplace_back(std::move(obj)); arr.push_back(std::move(obj));
} }
return dynamic(std::move(arr)); return arr;
} }
static dynamic parseBser(Cursor& curs) { static dynamic parseBser(Cursor& curs) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment