1764 Commits

Author SHA1 Message Date
David Tolnay
e5703162e8
Move Box alloc/dealloc functions to guard object 2020-12-12 16:31:01 -08:00
David Tolnay
25b3c1d1e2
Add dealloc shim for Box to dealloc without running T's Drop 2020-12-12 16:29:34 -08:00
David Tolnay
4bd77b65df
Merge pull request #573 from dtolnay/box
Add Box construction tests
2020-12-12 16:29:20 -08:00
David Tolnay
a141674f56
Add Box construction tests 2020-12-12 16:21:24 -08:00
David Tolnay
0f1ac8b3fd
Merge pull request #572 from dtolnay/box
Fix uninitialized Drop on exception in rust::Box<T>::in_place
2020-12-12 15:50:45 -08:00
David Tolnay
c5dc45a0b3
Fix uninitialized Drop on exception in rust::Box<T>::in_place 2020-12-12 15:44:46 -08:00
David Tolnay
6f18248fe4
Merge pull request #571 from dtolnay/box
Delete private Box default constructor
2020-12-12 15:44:32 -08:00
David Tolnay
c4b3422dee
Delete private Box default constructor 2020-12-12 15:24:52 -08:00
David Tolnay
faf22e8112
Release 1.0.17 1.0.17 2020-12-12 09:59:02 -08:00
David Tolnay
8693392e58
Merge pull request #569 from dtolnay/typename
Fix omitted typenames incompatible with Visual C++ 2015
2020-12-12 08:57:07 -08:00
David Tolnay
665178e914
Fix omitted typenames incompatible with Visual C++ 2015 2020-12-12 08:50:07 -08:00
David Tolnay
38f6fe2d37
Release 1.0.16 1.0.16 2020-12-11 14:13:18 -08:00
David Tolnay
a42c638efe
Merge pull request #566 from dtolnay/vec-copy
Add Vec copy constructor and copy assignment operator
2020-12-11 14:12:32 -08:00
David Tolnay
dd42c72287
Add Vec copy assignment operator 2020-12-11 14:05:26 -08:00
David Tolnay
9007e46b03
Add Vec copy constructor 2020-12-11 14:05:12 -08:00
David Tolnay
381d9530d4
Merge pull request 565 from dtolnay/capacity 2020-12-11 14:00:20 -08:00
David Tolnay
dc62d713bc
Expose Vec capacity to C++ 2020-12-11 13:53:17 -08:00
David Tolnay
2b3117f508
Release 1.0.15 1.0.15 2020-12-10 20:08:45 -08:00
David Tolnay
265cd4c7dc
Merge pull request #563 from dtolnay/shared-ptr-primitive
Support shared_ptr of primitives
2020-12-10 20:08:28 -08:00
David Tolnay
9df2aac134
Remove SharedPtr to &mut conversions
These are broken because multiple SharedPtrs can point to the same data,
and getting a &mut from each of them would result in multiple &mut to
overlapping data.
2020-12-10 20:06:57 -08:00
David Tolnay
f72b0c6182
Suppress modernize-use-equals-default
Clang-tidy emits this warning:

    src/cxx.cc:338:3: warning: use '= default' to define a trivial default constructor [modernize-use-equals-default]
      MaybeUninit() {}
      ^             ~~
                    = default;
    src/cxx.cc:339:3: warning: use '= default' to define a trivial destructor [modernize-use-equals-default]
      ~MaybeUninit() {}
      ^              ~~
                     = default;

but following the suggestion makes the code not compile (the default
implementation of the default constructor "is implicitly deleted because
the default definition would be ill-formed").

    src/cxx.cc: In function ‘std::string* cxxbridge1$std$shared_ptr$string$uninit(std::shared_ptr<std::__cxx11::basic_string<char> >*)’:
    src/cxx.cc:465:48: error: use of deleted function ‘rust::cxxbridge1::{anonymous}::MaybeUninit<T>::MaybeUninit() [with T = std::__cxx11::basic_string<char>]’
      465 |         reinterpret_cast<CXX_TYPE *>(new rust::MaybeUninit<CXX_TYPE>);         \
          |                                                ^~~~~~~~~~~~~~~~~~~~~
    src/cxx.cc:512:3: note: in expansion of macro ‘SHARED_PTR_OPS’
      512 |   MACRO(string, std::string)
          |   ^~~~~
    src/cxx.cc:517:1: note: in expansion of macro ‘FOR_EACH_SHARED_PTR’
      517 | FOR_EACH_SHARED_PTR(SHARED_PTR_OPS)
          | ^~~~~~~~~~~~~~~~~~~
    src/cxx.cc:338:3: note: ‘rust::cxxbridge1::{anonymous}::MaybeUninit<T>::MaybeUninit() [with T = std::__cxx11::basic_string<char>]’ is implicitly deleted because the default definition would be ill-formed:
      338 |   MaybeUninit() = default;
          |   ^~~~~~~~~~~
    src/cxx.cc:337:5: error: union member ‘rust::cxxbridge1::{anonymous}::MaybeUninit<std::__cxx11::basic_string<char> >::value’ with non-trivial ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
      337 |   T value;
          |     ^~~~~
2020-12-10 19:54:22 -08:00
David Tolnay
5b16340b67
Support shared_ptr of primitives 2020-12-10 19:48:37 -08:00
David Tolnay
1cde514d94
Clean up unused mut from Unique-/SharedPtr expansion 2020-12-10 19:48:20 -08:00
David Tolnay
53c9b047d6
Update ui test suite to nightly-2020-12-11 2020-12-10 18:27:07 -08:00
David Tolnay
a7b2b30c28
Release 1.0.14 1.0.14 2020-12-10 12:22:18 -08:00
David Tolnay
665b7f5b6c
Merge pull request #560 from dtolnay/relocatable
Mark all shared structs as relocatable
2020-12-10 12:04:51 -08:00
David Tolnay
5554ebd136
Mark all shared structs as relocatable 2020-12-10 11:37:01 -08:00
David Tolnay
b43417e2a6
Merge pull request #559 from dtolnay/pod
Improve POD detection for structs with POD fields
2020-12-10 11:36:52 -08:00
David Tolnay
0beba91b49
Improve POD detection for structs with POD fields 2020-12-09 23:54:08 -08:00
David Tolnay
8779ecc0f3
Merge pull request #558 from dtolnay/operator-new
Respect class-specific member operator new in MaybeUninit allocation
2020-12-09 23:27:25 -08:00
David Tolnay
718ca0f847
Respect class-specific member operator new in MaybeUninit allocation 2020-12-09 23:16:57 -08:00
David Tolnay
056f3303fb
Merge pull request #557 from dtolnay/sizet
Include <cstddef> everywhere that size_t makes an appearance
2020-12-09 23:16:33 -08:00
David Tolnay
12320e13f8
Include <cstddef> everywhere that size_t makes an appearance 2020-12-09 23:11:30 -08:00
David Tolnay
e5ea14e049
Merge pull request #556 from dtolnay/functional
Include <functional> when deriving Hash impl shim
2020-12-09 23:11:19 -08:00
David Tolnay
08a03dbb9a
Include <functional> when deriving Hash impl shim 2020-12-09 23:04:36 -08:00
David Tolnay
0dee4b4278
Merge pull request #555 from dtolnay/impl
Limit instantiation of Vec and Box shims to local element type
2020-12-09 22:50:55 -08:00
David Tolnay
1acc8a0ca7
Limit instantiation of Vec and Box shims to local element type 2020-12-09 22:35:29 -08:00
Adrian Taylor
f831a5abcf Display all known reasons why type must be Trivial.
This generates multiple Rust-side and C++-side error messages
when a given opaque C++ type is being used in contexts which
allow only a Trivial type. Previously, we showed just the first
message and discarded all others.
2020-12-07 16:49:19 -08:00
Adrian Taylor
7b443f71b0 Add reasons for Trivial requirements in C++ errors 2020-12-07 16:25:59 -08:00
Adrian Taylor
73f2daff89 Allow &mut calls on Trivial extern types only.
Previously we allowed extern types to be used as un-pinned
reference parameters only if there happened to be some other
use of the type in some way which required it to be Trivial.

With this change,
* Opaque extern types must always be pinned when used as mutable
  reference parameters;
* Trivial extern types need never be pinned when used as mutable
  reference parameters.
2020-12-07 16:25:59 -08:00
David Tolnay
8801e60242 Release 1.0.13
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEERijF2Cz/ZdaBZKeK+boUO5X/bYIFAl/OgBsACgkQ+boUO5X/
 bYLIIQ//VUuTKulnHybQUDza2+uVqP/AR4YsfPsX8LUKeHK0b44bOgrL8mzxDLgh
 rggkoEIyAdTo708cWUyTVa+0YWkiogUvpxyUrYDAjXJRgL+wY/bvHRc8WFZgDEJf
 SjRChUvmSG+T1Xi4kSLN43enYzIXQlT+LM4nT9zde8//W6e9oZapqax9XHJs7T2L
 GWU3YJikbz67Ox30aLsCnEXuUYRxZgU7VAuifDGNihATQYvCjXLv3z2p1q67rBjN
 5Z+7+W6zeMZWF8pcyYkWKxw533oxU3ryI59QohAEYS172rV0L8bb6r16RgIBtsl4
 TMHLQm8pYgOUsR/wsvcVf7tJNlzP8QI4eVesgXiYPOtIVkul2e+4reyzrSagtFHn
 /ijS8iND1EmGSzx2IPEi2iGCxdApHjvw9fOM+LoMOIBgnZ0ukuUaxQ1z2y6bLv8p
 eivNZQGiAsXsPs7CNqaO8i3Ie7YRNkiMWWmrUe+xTHb4JbyUeWBsoLHuCnSYTfgw
 bROC4cQt6pM7SXPYyTi5AUUhgORtphzwMl2ZESER0/8gqNj3eWTYVKRtymVGNlOv
 59heDgroLbm/FrbYivgaoa0Z1a2/MsWxqSaB5lUPR1wKjOpWXIv21/XVAfFAgQ2E
 OqKBfCTuGyd39ymm2XHCTXv01tHewJSuNNFoKDof3EMua4iivDw=
 =FTpN
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEERijF2Cz/ZdaBZKeK+boUO5X/bYIFAl/OgGAACgkQ+boUO5X/
 bYJD9g/5AW61X2dn6v306AwaQpPIUGmluyuKGIMmbpk21ZbBW3TDmMdBixMG5hck
 kBnWVQLPYTzMHYxZfC9Ve1K/F0F5WgdGzKgd1Rmkz9ZowaUaCtX/tWEXMNdpjlDN
 Uv2IV3YJq11dTWRtK+1LErUoF963oDbdLh49ukXdbEGX8cH1MlTT+kdiK2dcGfkN
 cd8o+hfZVmiVjtUPjlFB5hNikvDVeuy4hthVraAgRCL8MZYKhk5YzwLYzXvaHnuJ
 JZ60xN6CTdnPuX/G6ug/UQmwQE8Cvo6UiBCs6x741jTJfft202XpfUV5RMo5Zza0
 Grik52+JRK84Uvo4pxJ0+Y8pttKVpfTHm2HkutepAEcussVAi/B72MGv9lwjjNxL
 igM0/M4JOtdeHrBxliEizg9y6NRCjMWUrhMsPyRK1dqnGtPL0KugigSDlN0iajbV
 jDwWo7vG5d2qOFePsLQ+GywEY5fBvY0O4BjRksxZwr4Z2ec7jfd8ElsVCjLCssa0
 0dgqVDyukixCCBABn4tq2YkIPC9GSYSWTUXvZnxIySLif9hYnSuHjbfrCm8vOHdN
 TLuDOq5OZxmJa2QLTJfGQ/JONjYp8v0PM9JQuPdA5IDV6JFRBQS2Qcv8Nrx+LTPt
 kwJsutCzKiJ1JgmK3h5mzixIb7yGpaw8dmv7LM+nbuPMPmo/Xag=
 =3DL+
 -----END PGP SIGNATURE-----

Merge 1.0.13 into master
2020-12-07 11:19:53 -08:00
David Tolnay
c9e14fb414
Release 1.0.13 1.0.13 2020-12-07 11:18:51 -08:00
David Tolnay
c7ec958bc0
Lockfile update 2020-12-07 11:17:29 -08:00
David Tolnay
7082067186
Include <memory> for CxxVector's unique_ptr shims
Fixes #548.
2020-12-07 11:16:15 -08:00
David Tolnay
75ea17ce4e
Rename ResolvableName -> RustName 2020-12-06 21:08:47 -08:00
David Tolnay
5804bb7266
Use ResolvableName as resolutions map key 2020-12-06 21:06:27 -08:00
David Tolnay
4f705dc799
Fix arrowheads rendered by Safari 2020-12-06 12:15:40 -08:00
David Tolnay
355dfa5e1a
Merge pull request #542 from dtolnay/explicitvec
Respect explicit impls on Vec and Box
2020-12-04 18:40:57 -08:00
David Tolnay
f33bc24057
Respect explicit impls on Vec and Box 2020-12-04 18:35:37 -08:00
David Tolnay
25ed783082
Allow Box containing shared type from other module
#541, but for Box in addition to Vec.
2020-12-04 18:22:07 -08:00