Skip to content

Commit e01ce4c

Browse files
committed
Address review comments and CI fixes.
1 parent 965058b commit e01ce4c

File tree

24 files changed

+37
-43
lines changed

24 files changed

+37
-43
lines changed

libcxx/include/__chrono/time_zone.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ class _LIBCPP_AVAILABILITY_TZDB time_zone {
4343

4444
// The "constructor".
4545
//
46-
// The default constructor is private to avoid the constructor from being an
47-
// ABI interface. Instead use an __ugly_named function as an ABI interface,
48-
// since users should not depend on __ugly_names.
46+
// The default constructor is private to avoid the constructor from being
47+
// part of the ABI. Instead use an __ugly_named function as an ABI interface,
48+
// since that gives us the ability to change it in the future.
4949
[[nodiscard]] _LIBCPP_EXPORTED_FROM_ABI static time_zone __create(unique_ptr<__impl>&& __p);
5050

5151
_LIBCPP_EXPORTED_FROM_ABI ~time_zone();
@@ -55,9 +55,9 @@ class _LIBCPP_AVAILABILITY_TZDB time_zone {
5555

5656
_LIBCPP_NODISCARD_EXT _LIBCPP_HIDE_FROM_ABI string_view name() const noexcept { return __name(); }
5757

58-
[[nodiscard]] _LIBCPP_EXPORTED_FROM_ABI const __impl& __implementation() const noexcept;
58+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI const __impl& __implementation() const noexcept { return *__impl_; }
5959

60-
// private:
60+
private:
6161
[[nodiscard]] _LIBCPP_EXPORTED_FROM_ABI string_view __name() const noexcept;
6262
unique_ptr<__impl> __impl_;
6363
};

libcxx/include/__chrono/time_zone_link.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class time_zone_link {
3939
public:
4040
struct __constructor_tag;
4141
_LIBCPP_NODISCARD_EXT
42-
_LIBCPP_HIDE_FROM_ABI explicit time_zone_link(string_view __name, string_view __target, __constructor_tag&&)
42+
_LIBCPP_HIDE_FROM_ABI explicit time_zone_link(__constructor_tag&&, string_view __name, string_view __target)
4343
: __name_{__name}, __target_{__target} {}
4444

4545
_LIBCPP_HIDE_FROM_ABI time_zone_link(time_zone_link&&) = default;

libcxx/include/__chrono/tzdb_list.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class _LIBCPP_AVAILABILITY_TZDB tzdb_list {
5959
_LIBCPP_NODISCARD_EXT _LIBCPP_EXPORTED_FROM_ABI const_iterator cbegin() const noexcept;
6060
_LIBCPP_NODISCARD_EXT _LIBCPP_EXPORTED_FROM_ABI const_iterator cend() const noexcept;
6161

62-
[[nodiscard]] _LIBCPP_EXPORTED_FROM_ABI __impl& __implementation();
62+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI __impl& __implementation() { return *__impl_; }
6363

6464
private:
6565
__impl* __impl_;

libcxx/modules/std/chrono.inc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,9 @@ export namespace std {
222222
// [time.zone.timezone], class time_zone
223223
using std::chrono::choose;
224224
# endif
225+
# ifdef _LIBCPP_ENABLE_EXPERIMENTAL
225226
using std::chrono::time_zone;
227+
# endif
226228
# if 0
227229

228230
// [time.zone.zonedtraits], class template zoned_traits
@@ -237,8 +239,10 @@ export namespace std {
237239
using std::chrono::leap_second;
238240
# endif
239241

242+
# ifdef _LIBCPP_ENABLE_EXPERIMENTAL
240243
// [time.zone.link], class time_zone_link
241244
using std::chrono::time_zone_link;
245+
# endif
242246

243247
# if 0
244248
// [time.format], formatting

libcxx/src/include/tzdb/time_zone_private.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class time_zone::__impl {
2626
public:
2727
explicit _LIBCPP_HIDE_FROM_ABI __impl(string&& __name) : __name_(std::move(__name)) {}
2828

29-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI string_view name() const noexcept { return __name_; }
29+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI string_view __name() const noexcept { return __name_; }
3030

3131
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI vector<__tz::__continuation>& __continuations() { return __continuations_; }
3232
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI const vector<__tz::__continuation>& __continuations() const {

libcxx/src/time_zone.cpp

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
1616

1717
namespace chrono {
1818

19-
#if 0
20-
_LIBCPP_NODISCARD_EXT _LIBCPP_EXPORTED_FROM_ABI time_zone::time_zone(unique_ptr<time_zone::__impl>&& __p)
21-
: __impl_(std::move(__p)) {
22-
_LIBCPP_ASSERT_NON_NULL(__impl_ != nullptr, "initialized time_zone without a valid pimpl object");
23-
}
24-
#endif
25-
2619
[[nodiscard]] _LIBCPP_EXPORTED_FROM_ABI time_zone time_zone::__create(unique_ptr<time_zone::__impl>&& __p) {
27-
// : __impl_(std::move(__p)) {
2820
_LIBCPP_ASSERT_NON_NULL(__p != nullptr, "initialized time_zone without a valid pimpl object");
2921
time_zone result;
3022
result.__impl_ = std::move(__p);
@@ -33,11 +25,7 @@ _LIBCPP_NODISCARD_EXT _LIBCPP_EXPORTED_FROM_ABI time_zone::time_zone(unique_ptr<
3325

3426
_LIBCPP_EXPORTED_FROM_ABI time_zone::~time_zone() = default;
3527

36-
[[nodiscard]] _LIBCPP_EXPORTED_FROM_ABI string_view time_zone::__name() const noexcept { return __impl_->name(); }
37-
38-
[[nodiscard]] _LIBCPP_EXPORTED_FROM_ABI const time_zone::__impl& time_zone::__implementation() const noexcept {
39-
return *__impl_;
40-
}
28+
[[nodiscard]] _LIBCPP_EXPORTED_FROM_ABI string_view time_zone::__name() const noexcept { return __impl_->__name(); }
4129

4230
} // namespace chrono
4331

libcxx/src/tzdb.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ static void __parse_link(tzdb& __tzdb, istream& __input) {
562562
string __name = chrono::__parse_string(__input);
563563
chrono::__skip_line(__input);
564564

565-
__tzdb.links.emplace_back(std::move(__name), std::move(__target), time_zone_link::__constructor_tag{});
565+
__tzdb.links.emplace_back(time_zone_link::__constructor_tag{}, std::move(__name), std::move(__target));
566566
}
567567

568568
static void __parse_tzdata(tzdb& __db, __tz::__rules_storage_type& __rules, istream& __input) {

libcxx/src/tzdb_list.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,6 @@ _LIBCPP_NODISCARD_EXT _LIBCPP_EXPORTED_FROM_ABI tzdb_list::const_iterator tzdb_l
4444
return __impl_->cend();
4545
}
4646

47-
[[nodiscard]] _LIBCPP_EXPORTED_FROM_ABI tzdb_list::__impl& tzdb_list::__implementation() { return *__impl_; }
48-
4947
} // namespace chrono
5048

5149
_LIBCPP_END_NAMESPACE_STD

libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.compile.pass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
#include "test_macros.h"
2525

2626
// These types have "private" constructors.
27-
extern std::chrono::time_zone tz;
28-
extern std::chrono::time_zone_link link;
27+
extern std::chrono::time_zone tz;
28+
extern std::chrono::time_zone_link link;
2929

3030
void test() {
3131
std::chrono::tzdb_list& list = std::chrono::get_tzdb_list();

libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.verify.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
#include "test_macros.h"
2222

2323
// These types have "private" constructors.
24-
extern std::chrono::time_zone tz;
25-
extern std::chrono::time_zone_link link;
24+
extern std::chrono::time_zone tz;
25+
extern std::chrono::time_zone_link link;
2626

2727
void test() {
2828
std::chrono::tzdb_list& list = std::chrono::get_tzdb_list();

0 commit comments

Comments
 (0)