phobos/std
Geod24 1e73cb8ca7 std.traits: Add support for 'in' storage class
For a long time, the 'in' storage class was only a second class citizen,
merely an alias for 'const', which is a type constructor.
While it was also documented for a long time as being 'scope',
this was removed when 'scope' actually started to have an effect
(when DIP1000 started to be implemented).
Currently, a switch (-preview=in) allows to get back this 'scope'.

However, the 'in' storage class does not really exists,
it gets lowered to 'const [scope]' at an early stage by the compiler,
which means that we expose what is essentially an implementation
detail to the user.

There is a PR in DMD (dlang/dmd#11474) that aims to give 'in' an actual
identity, instead of it being lowered to 'const [scope]'.
The underlying motivation is to allow for extending 'in''s functionality,
giving it the ability to pass by 'ref' when necessary, and accept rvalues.

However, regardless of the second goal, having proper support for 'in'
would lead to less confusing messages, better code generation,
and less confusion w.r.t. the behavior of `std.traits.ParameterStorageClass`.
2020-08-01 19:39:20 +09:00
..
algorithm Merge remote-tracking branch 'upstream/stable' into merge_stable 2020-06-24 00:08:51 +02:00
container Move stableRemove alias to correct place 2020-07-11 08:58:22 +02:00
datetime Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
digest sha: bswap without intermediate conversion to byte array 2020-07-25 10:07:59 +02:00
experimental std.experimental.allocator.building_blocks.region: Remove duplicated RISCV version condition 2020-06-29 16:35:52 +02:00
internal Fix Issue 20889 - Support construction of std.bigint.BigInt from a sign and a byte-array magnitude 2020-06-04 16:04:26 -07:00
net Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
range Remove invalid alias from chain's implementation 2020-07-02 15:36:11 +02:00
regex Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
uni Qualify unittests as nothrow @nogc 2020-07-27 18:43:15 +02:00
windows Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
array.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
ascii.d [TRIVIAL] Make link clickable and safe (#7045) 2019-05-27 17:35:26 +02:00
base64.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
bigint.d Fix Issue 20889 - Support construction of std.bigint.BigInt from a sign and a byte-array magnitude 2020-06-04 16:04:26 -07:00
bitmanip.d bitmanip: make use of new byteswap() function 2020-07-08 13:25:24 +02:00
compiler.d
complex.d std.complex: Add complex norm() and proj() 2020-05-15 09:13:18 +02:00
concurrency.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
conv.d unsignedToTempString: use the template version 2020-07-27 03:37:52 +02:00
csv.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
demangle.d
encoding.d Use consistent quickindex wrapper around hand-written list-of-links tables 2020-02-21 21:04:05 -05:00
exception.d Followup to #7458 - Return true for mayPointTo(void[N]) that can hold a slice, 2020-04-30 10:18:54 -04:00
file.d Fix Issue 20785 - std.file.setTimes: on macOS use setattrlist to avoid truncating timestamp precision to microseconds 2020-05-18 15:07:27 -07:00
format.d Add tests for empty empty static arrays of (|w|d)char's 2020-05-12 15:52:48 +02:00
functional.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
getopt.d std.getopt: Fix link to perl docs (#7572) 2020-07-31 10:11:06 +08:00
json.d Fix Issue 20874 - std.json.assign requires '@safe' and 'pure' 2020-05-28 23:35:27 +02:00
math.d fix fabs() to not use x87 for float/double 2020-07-21 01:18:10 -07:00
mathspecial.d Fix Issue 19283 - [std.mathspecial] documentation for normal distribution doesn't list parameters 2019-10-16 16:14:31 +02:00
meta.d Fix issue 21088: move alias statement into staticMap mixin body. 2020-07-30 05:51:25 +02:00
mmfile.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
numeric.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
outbuffer.d Replaced version (unittest) with version (StdUnittest) to avoid unnecessary overhead when compiling with -unittest 2020-01-19 14:05:17 +02:00
package.d std.package: Don't use partial in test. 2020-05-05 11:23:20 +02:00
parallelism.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
path.d std.path: Fix tilde expansion for HOME=/ 2020-06-11 20:40:39 +02:00
process.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
random.d unsignedToTempString: use the template version 2020-07-27 03:37:52 +02:00
signals.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
socket.d Merge pull request #7434 from CyberShadow/pull-20200330-230002 2020-05-24 08:55:16 +02:00
stdint.d
stdio.d [std.stdio.writeln] Simplify static checks for string specialization 2020-06-03 16:11:53 +01:00
string.d Fix Issue 20783 - std.string.lastIndexOf doesn't work correctly in CTFE 2020-04-29 02:51:03 +02:00
system.d Add support for iOS derived platforms to std.system 2020-03-14 15:14:30 +01:00
traits.d std.traits: Add support for 'in' storage class 2020-08-01 19:39:20 +09:00
typecons.d Fix public examples failing due to missing imports 2020-06-28 18:12:56 +02:00
typetuple.d typetuple: 100% code coverage 2019-09-29 20:13:44 +02:00
uri.d std.uri: Add unittests for 100% code coverage. (#7220) 2019-10-17 09:22:45 +02:00
utf.d unsignedToTempString: use the template version 2020-07-27 03:37:52 +02:00
uuid.d
variant.d Fix issue 21021 - std.variant confused by alias this when struct larger than maxDataSize 2020-07-07 12:32:14 +02:00
xml.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
zip.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00
zlib.d Replace 'Issue XXX' with Bugzilla links 2020-04-13 16:28:09 +09:00