Commit Graph

139 Commits

Author SHA1 Message Date
Chris Lattner
0619e57a61 Switch the stdlib to use #file instead of __FILE__, and deprecate the __FILE__ identifiers.
This also updates the tests that would otherwise fail.
2016-02-04 15:08:31 -08:00
Dmitri Gribenko
a385779e41 stdlib: define a custom mirror for DictionaryGenerator and SetGenerator
The default mirror tries to access implementation details of the
generator, accessing the 'description' property of the storage, which is
an NSDictionary subclass.  The default implementation of -[NSDictionary
description] tries to print the dictionary contents.  But if the
Swift.Dictionary can't be bridged to NSDictionary, that causes a runtime
trap.

rdar://problem/24238609
2016-01-30 02:09:45 -08:00
David Farler
3f635d04c7 Reinstante var bindings in refutable patterns, except function parameters.
This reverts commits: b96e06da44,
                      8f2fbdc93a,
                      93b6962478,
                      64024118f4,
                      a759ca9141,
                      3434f9642b,
                      9f33429891,
                      47c043e8a6.

This commit leaves 'var' on function parameters as a warning to be
merged into Swift 2.2. For Swift 3, this will be an error, to be
converted in a follow-up.
2016-01-29 15:27:08 -08:00
Dmitri Gribenko
a5a70dd14c StdlibUnittest: use ResettableValue more, removing error-prone boilerplate from tests 2016-01-29 13:24:59 -08:00
Slava Pestov
55644c1540 stdlib: Remove Self parameter from SequenceType._preprocessingPass
This code as written is not sound and should not type check
for non-final classes conforming to SequenceType (eg, NSArray).

Instead, capture the base of the call from the preprocess closure
passed in. The closure is @noescape, so it should be equivalent.
2016-01-29 12:18:39 -08:00
Dmitri Gribenko
fbbb42a5db Merge pull request #1130 from glessard/noobjc-testpredicate
Add cases .ObjCRuntime and .NativeRuntime to StdlibUnittest's TestPredicate
2016-01-29 10:36:28 -08:00
Dmitri Gribenko
7368b08d86 Merge pull request #1133 from glessard/always-never-testpredicate
Add .Always and .Never cases to StdlibUnittest's TestPredicate
2016-01-28 23:19:55 -08:00
Guillaume Lessard
b7f19d6889 Add .Always and .Never cases to StdlibUnittest's TestPredicate 2016-01-28 23:03:00 -07:00
Guillaume Lessard
6879dbd553 Add runtime-related cases to StdlibUnittest's TestPredicate 2016-01-28 20:16:11 -07:00
Ling Wang
148c821d2c Fix test failure 2016-01-28 09:35:00 -06:00
Ling Wang
29bd8cc1b5 Merge from upstream and resolve conflicts 2016-01-27 16:08:15 -06:00
Dmitri Gribenko
4c590585e0 Move Default* and Minimal* colections to StdlibCollectionUnittest
New StdlibUnittest build times:

* DebugAssert compiler and library: 50s
* ReleaseAssert compiler and library: 75s
2016-01-26 18:58:04 -08:00
Dmitri Gribenko
c497ea9da9 Revert "[SR-610][Stdlib] Use for-in to iterate over CollectionType elements" 2016-01-25 18:08:21 -08:00
Károly Lőrentey
015004e3d5 [SR-610][stdlib] Use _initialize_to in _copyCollectionToNativeArrayBuffer
The Generator interface is specialized for iteration and is often faster than indexing.

Using _initialize_to results in a ~10% speedup for Dictionary. For collections with more complex iteration state (such as search trees with O(log(n)) indexing), this leads to a complexity class improvement.

This requires a small change to the testsuite, because the generate() method of Defaulted*RangeReplaceableSlice called Array(self), which now leads to infinite recursion.

https://bugs.swift.org/browse/SR-610
2016-01-25 19:47:43 +01:00
gregomni
e2dee6b9dd [stdlib] Switch keywords from 'typealias' to 'associatedtype' in stdlib
Fixes deprecation warnings arising from addition of new
‘associatedtype’ keyword in sr-511.
2016-01-14 09:39:15 -08:00
Greg Parker
c9f4dc0044 [test] Fail if a test file uses StdlibUnittest but runs no tests.
This catches accidental omission of runAllTests(). Previously
such test files would silently test nothing and succeed.
2016-01-09 03:27:56 -08:00
Davide Italiano
f1b3965586 [stdlib] Port StdlibUnittest to FreeBSD. 2016-01-07 21:05:32 +00:00
Ling Wang
bb7119f4ae Add O(1) contains() implementation for Range with Comparable Element 2016-01-01 19:43:01 -06:00
Zach Panzarino
e3a4147ac9 Update copyright date 2015-12-31 23:28:40 +00:00
Dmitri Gribenko
9b15d03b73 StdlibUnittest: don't pass the name of the executable on the command line
Also, add a test for the command line of the child process.
2015-12-24 02:27:57 -08:00
Arsen Gasparyan
9203f36630 Refactoring 2015-12-24 12:18:59 +03:00
Arsen Gasparyan
31750a1690 Pass env variable through StdlibUnittest 2015-12-24 11:55:01 +03:00
Dmitri Gribenko
3877d04a73 Merge pull request #731 from ken0nek/add-spaces-before-and-after-arrow
Add spaces before and after closure arrow
2015-12-23 10:53:22 -08:00
Doug Gregor
5b35c786b8 Standard library unit testing: use static "#if" for OS kind determination.
There is absolutely no point in making this a runtime check, because
the library will be built differently on the different platforms
anyway. We only need to determine the version at runtime.
2015-12-22 16:18:28 -08:00
ken0nek
e7e70cea92 Add spaces before and after closure arrow in stdlib 2015-12-23 04:52:15 +09:00
ken0nek
fcd8fcee91 Convert [Cc]an not -> [Cc]annot 2015-12-23 00:55:48 +09:00
Chris Lattner
b85992eeb5 fix typo from the previous commit that led to validation test failures. 2015-12-21 20:57:15 -08:00
Chris Lattner
685b4ede1f Reapply: Remove the last uses of ++/-- from the stdlib directory.
This reverts commit fc6a406a56.
2015-12-21 20:54:28 -08:00
Chris Lattner
d5dba4eda2 Move stdlib/private off ++/-- 2015-12-21 18:07:36 -08:00
Michael Gottesman
fc6a406a56 Revert "Remove the last uses of ++/-- from the stdlib directory."
This reverts commit 0caebf2fb4.
2015-12-21 19:21:38 -06:00
Chris Lattner
0caebf2fb4 Remove the last uses of ++/-- from the stdlib directory. 2015-12-21 15:11:49 -08:00
Pavel Mazurin
1dae128c83 Gets rid of for-loop deprecation compiler warnings in stdlib/private 2015-12-19 09:37:03 +01:00
Joe Groff
fbd2e4d872 Rename @asmname to @_silgen_name.
This reflects the fact that the attribute's only for compiler-internal use, and isn't really equivalent to C's asm attribute, since it doesn't change the calling convention to be C-compatible.
2015-11-17 14:13:48 -08:00
Michael Gottesman
99bd7754a5 Fix typo in StdlibUnittest.swift.gyb. 2015-11-11 16:07:42 -08:00
David Farler
8f2fbdc93a Make function parameters and refutable patterns always immutable
All refutable patterns and function parameters marked with 'var'
is now an error.

- Using explicit 'let' keyword on function parameters causes a warning.
- Don't suggest making function parameters mutable
- Remove uses in the standard library
- Update tests

rdar://problem/23378003
2015-11-09 16:56:13 -08:00
David Farler
3434f9642b Disallow 'var' pattern bindings in if, while, and guard statements
Make the following patterns illegal:

  if var x = ... {
    ...
  }

  guard var x = ... else {
    ...
  }

  while var x = ... {
    ...
  }

And provide a replacement fixit 'var' -> 'let'.

rdar://problem/23172698

Swift SVN r32855
2015-10-24 01:46:30 +00:00
Dmitri Hrybenko
6536edd68c stdlib: fix coding style
Swift SVN r32425
2015-10-03 21:13:15 +00:00
Dmitri Hrybenko
779e506a09 StdlibUnittest: rename isSequenceType to expectSequenceType for uniformity
Swift SVN r32296
2015-09-29 03:07:26 +00:00
Dmitri Hrybenko
b41986e95c StdlibUnittest: make isSequenceType and expectCollectionType more strict
These constraints should be on the SequenceType and CollectionType
protocols, but we can't express them in the language today.

Swift SVN r32295
2015-09-29 03:07:25 +00:00
Dmitri Hrybenko
9da0b57178 stdlib: Add an initializer to RangeReplaceableCollectionType from SequenceType
rdar://19815116

Swift SVN r32213
2015-09-24 23:20:13 +00:00
Dmitri Hrybenko
db77b54b3c StdlibUnittest: if the stacktrace is empty, don't print "stacktrace:"
Swift SVN r32057
2015-09-18 01:30:15 +00:00
Dmitri Hrybenko
67944589d6 stdlib: improve index invalidation guarantees for removeFirst()
Slice types that are RangeReplaceable (like ArraySlice) now slice
themselves in removeFirst().  Previously, these types were picking up
the wrong default implementation, and they were going through
replaceRange(), which caused all indices to be invalidated.  The new
implementation preserves all indices.

rdar://22536664

Swift SVN r31918
2015-09-12 04:35:51 +00:00
Arnold Schwaighofer
eb3d5e4d4a Revert "stdlib: Move the darwin String implementation over to use the ICU library."
Revert "Add test cases to exercise the native String vs cocoa buffer String path."
Revert "stdlib: Add back a test I removed"
Revert "stdlib: Fix hasPrefix,hasSuffix tests"
Revert "stdlib: Add documentation for the cached ascii collation tables"

This reverts commit 31493, 31492, 31491, 31490, 31489.

There are linking errors in SwiftExternalProjects (we probably have to link
against libicucore somewhere).

Swift SVN r31543
2015-08-27 21:02:32 +00:00
Arnold Schwaighofer
e1131ce3ee stdlib: Add back a test I removed
Reapply of 31476.

Swift SVN r31491
2015-08-26 15:14:20 +00:00
Arnold Schwaighofer
2d8f29e710 Revert "stdlib: Fix hasPrefix,hasSuffix tests"
Revert "stdlib: Add back a test I removed"
Revert "Add test cases to exercise the native String vs cocoa buffer String path."
Revert "stdlib: Move the darwin String implementation over to use the ICU library."

This reverts commit r31477, r31476, r31475, r31474.

Commit r31474 broke the ASAN build.

Swift SVN r31488
2015-08-26 13:09:03 +00:00
Arnold Schwaighofer
2588f44d83 stdlib: Add back a test I removed
Swift SVN r31476
2015-08-26 03:57:24 +00:00
Dmitri Hrybenko
3f7d64c532 Diagnose invalid arguments for '#if _runtime()'
rdar://problem/20117677

Swift SVN r31336
2015-08-19 16:55:39 +00:00
David Farler
313a4c93c6 Review: Index protocol extensions
- Add Strict/Defaulted Index types to StdlibUnittest
- Test whether a random access index calls its more efficient
  customization by tracking successor calls.
- Fix the RandomAccessIndex.advancedBy(n, limit:) API by de-underscoring
  the limit parameter
- Inline some internal transparent default implementations to their only
  call site
- Attach _RandomAccessAmbiguity type to RandomAccessIndex

rdar://problem/22085119

Swift SVN r30979
2015-08-04 03:13:14 +00:00
Joe Pamer
828eb68e72 Commit DaveA's API changes to 'print', along with the compiler changes necessary to support them.
There's still work left to do. In terms of next steps, there's still rdar://problem/22126141, which covers removing the 'workaround' overloads for print (that prevent bogus overload resolution failures), as well as providing a decent diagnostic when users invoke print with 'appendNewline'.

Swift SVN r30976
2015-08-04 01:57:11 +00:00
David Farler
311baf73cf Index protocol extensions
- Remove free Swift functions for advance and distance and replace
  them with protocol extension methods:
  - advancedBy(n)
  - advancedBy(n, limit:)
  - distanceTo(end)
- Modernize the Index tests
  - Use StdlibUnittest
  - Test for custom implementation dispatch

Perf impact: No significant changes reported in the
Swift Performance Measurement Tool.

rdar://problem/22085119

Swift SVN r30958
2015-08-03 20:06:44 +00:00