Commit graph

367 commits

Author SHA1 Message Date
monarchdodra
31afedbc5c fix Issue 11009 - Regression (2.064 git-head): DMD consumes huge memory when it compiles enum containing many items
This is a fixup of pull #1540.

Turns out NoDuplicates is scary inefficient for large input.

This cleans up and simplifies the pull somewhat.
2013-09-12 09:15:03 +02:00
monarch dodra
d39696d151 Merge pull request #1540 from AndrejMitrovic/ConvOptimize
Use a switch table for enum->string conversion, which avoids runtime memory allocation.
2013-09-08 08:38:16 -07:00
Andrej Mitrovic
680a7291ff Use a switch table for enum->string conversion, which avoids runtime memory allocation. 2013-09-06 16:03:49 +02:00
monarch dodra
b001c0a786 Merge pull request #1525 from lyrebirdsw/issue_10909
issue 10909 toImpl narrowing conversion support for bool type. mostNegative support for bool type
2013-09-04 07:57:22 -07:00
growler
dcb634e8a2 issue 10909 toImpl support for bool narrowing conversion. mostNegative support for bool. 2013-08-27 21:05:00 +10:00
monarchdodra
52cadf9f01 Yet another emplace unittest that is fixed 2013-08-25 23:03:54 +02:00
monarchdodra
6d3fe90eb9 reword emplace deprecation message 2013-08-25 22:56:22 +02:00
monarch dodra
fbf8ae203b make "emplace(singleArg)" safe pure nothrow 2013-08-25 22:56:22 +02:00
monarch dodra
d711117982 emplace: diagn for quals; simplf alias this brnch 2013-08-25 22:56:22 +02:00
unknown
62644dbfd8 Tweak emplace some 2013-08-25 22:56:22 +02:00
unknown
e951b2cf46 Issue 9559 - Range of Nullable doesn't work with std.array.array 2013-08-25 22:56:22 +02:00
unknown
75c935bdf6 Fix spelling 2013-08-25 22:56:22 +02:00
monarch dodra
fa9614988f Fix emplace 2013-08-25 22:56:22 +02:00
monarch dodra
a184d6b484 Merge pull request #1505 from quickfur/issue10874
Issue 10874 - conv.to ulong to int enum conversion
2013-08-24 02:33:37 -07:00
H. S. Teoh
d42e0eddec Add unittest for narrowing enum -> integral conversions. 2013-08-23 11:03:52 -07:00
H. S. Teoh
8f8587f677 Allow narrowing conversions of enum -> integral (int, short, etc.).
It will just throw at runtime if the value of the enum is too large.
2013-08-23 11:03:52 -07:00
H. S. Teoh
8536853fc8 Fix issue 10874.
Don't assume that is(A : B) means a==b is valid, or that !is(A : B)
implies that a==b is invalid. Instead, test for a==b explicitly.

More specifically, int and ulong are ==-comparable, even though ulong is
not implicitly convertible to int. Thus, one should be able to convert
ulong to an int-based enum, but is(A : B) in the signature constraint
prohibits this. Testing for a==b explicitly, OTOH, makes this work.
2013-08-22 21:01:10 -07:00
Andrei Alexandrescu
ec62f9dd5f Merge pull request #1452 from Kozzi11/toImplForIntegralTypes
Improve speed of to!string for integral types
2013-08-11 21:02:10 -07:00
Kozzi11
2041f446ff Improve speed of to!string for integral types 2013-08-07 11:00:20 +02:00
Tomoya Tanjo
7b5730478d Make a unittest for std.conv.toImple for char* to string conversion system 2013-08-04 00:23:03 +09:00
Tomoya Tanjo
323e736062 Add document for memory safety of std.conv.toImpl for char* to string conversion 2013-08-01 21:29:16 +09:00
Andrej Mitrovic
e7f4f715d6 Merge pull request #1429 from Kozzi11/toWithLetterCase
Add LetterCase to to!
2013-07-22 13:40:27 -07:00
Kozzi11
923b79998f Add LetterCase to to! 2013-07-22 15:29:34 +02:00
Hackerpilot
6f9c22bfa9 Merge remote-tracking branch 'upstream/master' 2013-07-13 19:37:11 +00:00
Hackerpilot
ae1dcaa3e1 Removed empty declarations. Converted more C-style array declarations to D-style. Removed trailing whitespace 2013-07-13 19:34:37 +00:00
Hara Kenji
1b230c39c5 Merge pull request #1341 from jmdavis/signed
Implement issue# 10314 (add std.traits.signed).
2013-07-04 01:37:01 -07:00
Andrej Mitrovic
4da1639c98 Merge pull request #1337 from 9rnsr/fix_attrs
Potentially @safe & pure formatting
2013-06-27 18:53:22 -07:00
k-hara
03a32d6fa4 Fix issue 313 & 314 2013-06-25 08:38:30 +09:00
k-hara
f54525e775 [to!string] severals 2013-06-20 10:57:51 +09:00
k-hara
01f6a978e0 [non to!string] because they are unrelated to formatValue 2013-06-20 10:57:41 +09:00
k-hara
7e60eb2405 [parse, str.to!x] Determine @trusted operations 2013-06-20 10:54:40 +09:00
k-hara
92bef24f2f fix Issue 10254 - Purity correctness is broken with constructor 2013-06-20 10:54:30 +09:00
k-hara
3427857948 [Refactoring] Delaying throwing Exception makes control flow analysis simple 2013-06-20 10:54:25 +09:00
k-hara
ed03c4af01 Fix trivial nitpicks 2013-06-20 10:54:20 +09:00
monarch dodra
0adb9524d6 Make conv unittest private simbols private
There were some symbols in a "version(unittest)" block that were not declared private.

This can create some conflicts during unittest releases. I started out just declaring them private, but that created some ambiguities in other modules that used "A" in their names, eg:
```D
struct Appender(A : T[], T)
```

`std\array.d(2129): Error: module std.array std.conv.A is private`.

So I just mangled the names. As a workaround. I'll file a bug report later.
2013-06-19 23:48:54 +02:00
jmdavis
378fe78352 Implement issue# 10314.
This moves std.traits.unsigned to std.conv and adds std.conv.signed,
since for some reason, we have std.traits.unsigned but do not have
std.traits.signed.
2013-06-19 08:47:41 -07:00
k-hara
e2d991b005 Move checkCTFEable to std.exception.assertCTFEable, and use it 2013-06-02 02:32:24 +09:00
Johannes Pfau
d44104ed56 Make std.conv unittests independent of floating point rounding 2013-05-25 12:12:41 +02:00
Brad Anderson
9e374bc4e1 Placement of WIKI in std.conv was corrupting docs 2013-05-14 13:07:48 -06:00
Nils Boßung
cf7169c613 xformat -> format 2013-05-08 01:34:47 +02:00
jmdavis
ce1b2294b0 Undocument some deprecated functions.
They were marked for removal in the docs (many of them were intended to
be removed in January), so now they've been removed from the docs and
marked for removal from the code in November.
2013-05-05 16:34:25 -07:00
Hara Kenji
fa378eea48 Merge pull request #1181 from monarchdodra/convEscape
Bugfix in std.conv.parseEscape
2013-03-25 05:10:06 -07:00
monarch dodra
4870741575 Fix typo in comment 2013-03-25 13:08:46 +01:00
jmdavis
8f7f6d69ac Remove some undocumented, deprecated functions which are slated for removal.
These have been deprecated for a while, but there was some balking
(primarily from Andrei IIRC) at actually removing them when they were
slated for removal, so they were instead made undocumented and slated
for removal after yet another 6 months or so. So, now that that time has
passed, here's another attempt to actually remove them.
2013-03-06 22:19:34 -08:00
monarch dodra
901da0ca29 Update unittest to take into account...
...Octal escapes and named character entities. These still don't work, but there was a test checking octal would throw, which is wrong.
2013-03-01 17:40:38 +01:00
monarch dodra
0512f7ca21 unittests for parseEscape 2013-02-28 18:01:44 +01:00
unknown
4197f797f4 Bugfix in std.conv.parseEscape
parseEscape was not parsing the escapes:
\
0
'
"
?
2013-02-28 18:01:17 +01:00
jmdavis
895550649f Remove all uses of toStringNow. 2013-02-24 18:23:51 -08:00
jmdavis
9bd4044536 Added CTFE-ability tests to some stuff in std.conv and std.string.
These tests are for the functionality that std.metastrings provides, and
we need to ensure that the normal functions which are replacing
those in std.metastrings continue to work in CTFE.
2013-02-24 16:02:32 -08:00
Andrej Mitrovic
1d24c8edf5 Fixes Issue 9523 - Regression: Enum to Enum conversion should work in std.conv. 2013-02-17 06:34:55 +01:00