Commit Graph

255 Commits

Author SHA1 Message Date
Jennifer Messerly 0e00b3e5c8 fix #28008, fix #28009 implement FutureOr<T>
This implements FutureOr<T> in strong mode, otherwise it's ignored (treated as `dynamic`.

Also fixes strong mode's inference subtype function incorrectly treating `void` as a malformed type. This had the consequence of allowing `void` to be inferred as a type argument.

R=leafp@google.com, paulberry@google.com

Review-Url: https://codereview.chromium.org/2647833002 .
2017-01-25 15:32:57 -08:00
Zachary Anderson 63c4b6b1cb Revert "Remove package:unittest from some tests"
This reverts commit dde47b2aad.

Revert "Update Dartium status for passing test"

This reverts commit d71c70d56d.

Tests failing on dart2js and async_star_pause_test is
passing on Dartium. Need to think about how to update the
status files.

Review-Url: https://codereview.chromium.org/2656503004 .
2017-01-25 11:06:58 -08:00
Zachary Anderson dde47b2aad Remove package:unittest from some tests
package:unittest is deprecated in favor of package:test.

R=fschneider@google.com

Review-Url: https://codereview.chromium.org/2656743002 .
2017-01-25 08:50:02 -08:00
Florian Loitsch 36c5cea288 Update status file and test.
Fixes red status for dartium/drt.
Also makes one test more precise (and less likely to fail for the wrong
reasons).

Review-Url: https://codereview.chromium.org/2571583006 .
2016-12-13 14:02:25 +01:00
Florian Loitsch 0c3deba6df Add tests for FutureOr<T>.
R=lrn@google.com

Review URL: https://codereview.chromium.org/2564563003 .
2016-12-12 14:54:57 +01:00
Lasse R.H. Nielsen 9ebef9af7c Handle the case of Stream.take(0) better.
The current implementation listens to the stream and waits for it to complete.
The change makes it listen and then immediately cancel, and then return a
subscription that only sends done.

R=floitsch@google.com

Review URL: https://codereview.chromium.org/2444363004 .

Committed: https://github.com/dart-lang/sdk/commit/8cead4090cc0b1184a2ad552003ac38cae1e2c77
2016-11-04 15:55:05 +01:00
William Hesse 3bd04426a8 Revert "Handle the case of Stream.take(0) better." This reverts commit 8cead4090c.
The test co19/LibTest/async/Stream/take_A01_t02 was failing after this
commit, on macos and windows, and perhaps everywhere.

BUG=
TBR=lrn@google.com

Review URL: https://codereview.chromium.org/2475303002 .
2016-11-04 15:47:46 +01:00
Lasse R.H. Nielsen 8cead4090c Handle the case of Stream.take(0) better.
The current implementation listens to the stream and waits for it to complete.
The change makes it listen and then immediately cancel, and then return a
subscription that only sends done.

R=floitsch@google.com

Review URL: https://codereview.chromium.org/2444363004 .
2016-11-04 14:54:58 +01:00
Florian Loitsch 70c48b9a2e Don't propagate synchronous Future.wait errors immediately.
Fixes #27249.

R=lrn@google.com

Review URL: https://codereview.chromium.org/2311923002 .
2016-09-06 11:57:43 +02:00
Florian Loitsch 6255638cd0 Return futures on Stream.cancel when possible.
Deprecate returning `null`.

Also, fixes cases where transformations on a stream didn't forward the cancel future

Fixes #26777.

BUG= http://dartbug.com/26777.
R=lrn@google.com

Review URL: https://codereview.chromium.org/2202533003 .

Committed: https://github.com/dart-lang/sdk/commit/395e7aaa696126b82862a9f75e7ebf742c354b56
Reverted: https://github.com/dart-lang/sdk/commit/99e5328eaca7f98641a5c6e523e80b7297792817
Committed: https://github.com/dart-lang/sdk/commit/1905ddafaa242883891e2fb2d706e2dfa059a71b
Reverted: https://github.com/dart-lang/sdk/commit/46a8579c1eb58f6a36a7d094d9b7824c92873de4
2016-09-05 17:41:22 +02:00
Florian Loitsch 33b7b45252 Deal with synchronous errors in Future.wait.
Synchronous errors are caught and piped into the returned future. This makes handling errors in Future.wait uniform.

Fixes #23656
BUG= http://dartbug.com/23656
R=lrn@google.com

Review URL: https://codereview.chromium.org/2252823004 .
2016-08-18 14:09:20 +02:00
Florian Loitsch 46a8579c1e Revert "Return futures on Stream.cancel when possible."
This reverts commit 1905ddafaa.

Review URL: https://codereview.chromium.org/2223133002 .
2016-08-08 19:31:04 +02:00
Florian Loitsch 1905ddafaa Return futures on Stream.cancel when possible.
Deprecate returning `null`.

Also, fixes cases where transformations on a stream didn't forward the cancel future

Fixes #26777.

BUG= http://dartbug.com/26777.
R=lrn@google.com

Committed: https://github.com/dart-lang/sdk/commit/395e7aaa696126b82862a9f75e7ebf742c354b56

Review URL: https://codereview.chromium.org/2202533003 .

Reverted: https://github.com/dart-lang/sdk/commit/99e5328eaca7f98641a5c6e523e80b7297792817
2016-08-08 17:30:36 +02:00
Florian Loitsch 99e5328eac Revert "Return futures on Stream.cancel when possible."
This reverts commit 395e7aaa69.

Review URL: https://codereview.chromium.org/2213193004 .
2016-08-05 14:32:14 +02:00
Florian Loitsch 395e7aaa69 Return futures on Stream.cancel when possible.
Deprecate returning `null`.

Also, fixes cases where transformations on a stream didn't forward the cancel future

Fixes #26777.

BUG= http://dartbug.com/26777.
R=lrn@google.com

Review URL: https://codereview.chromium.org/2202533003 .
2016-08-05 13:58:45 +02:00
Alan Knight 30b489578d Revert "Reapply zone tasks."
This reverts commit 6a7c037aa6.

BUG=

Review URL: https://codereview.chromium.org/2162643002 .
2016-07-18 13:12:36 -07:00
Florian Loitsch 6a7c037aa6 Reapply zone tasks.
This reverts commit 34d3c37233.

Committed: https://github.com/dart-lang/sdk/commit/f746f8f77e93fd93cb4ff3b4ed644c96a432947a

R=lrn@google.com

Review URL: https://codereview.chromium.org/2119243002 .

Reverted: https://github.com/dart-lang/sdk/commit/dae392291595fa394d601d2d0baa77b66d85533f
2016-07-05 17:33:09 +02:00
Florian Loitsch dae3922915 Revert "Reapply zone tasks."
This reverts commit f746f8f77e.

Review URL: https://codereview.chromium.org/2123593002 .
2016-07-04 21:58:15 +02:00
Florian Loitsch f746f8f77e Reapply zone tasks.
This reverts commit 34d3c37233.

Review URL: https://codereview.chromium.org/2119243002 .
2016-07-04 19:55:58 +02:00
Florian Loitsch 34d3c37233 Revert zone tasks.
Revert "Add tasks to zones."

This reverts commit 85cccde717.

Revert "Make Dom events run through zone tasks."

This reverts commit 6d1f6b2af6.

Revert "Add zone task support for request-anim."

This reverts commit 726b9f8dc7.

Revert "Add zone task support to http-requests."

This reverts commit b40cfcb57f.

Revert "Update status file for jsshell."

This reverts commit 5e05ee9b5f.

Review URL: https://codereview.chromium.org/2120063002 .
2016-07-01 22:36:52 -07:00
Florian Loitsch 85cccde717 Add tasks to zones.
R=lrn@google.com, misko@google.com

Review URL: https://codereview.chromium.org/1848933002 .
2016-07-01 19:42:22 -07:00
Florian Schneider 60cba24f86 Make timer test more robust.
This would fail, if the cancel() call would not be executed in time.

Give it a little extra time to make intermittent failures go away.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2075793002 .
2016-06-16 14:30:11 -07:00
Lasse R.H. Nielsen 06676c4719 Implement everything in test Future-class to avoid analyzer warnings.
Review URL: https://codereview.chromium.org/1968033002 .
2016-05-11 13:43:51 +02:00
Lasse R.H. Nielsen 63b71b4c24 Make _Future._chainForeignFuture not cause an assert.
If the foreign future completes with a future, the following call to
_Future._completeWithValue would hit an assert in checked mode
(value is! Future). This change makes the _Future._completeWithValue flatten
incoming nesting futures before completing the _Future, ensuring that a
_Future never has a Future as value.

An alternative is to throw if the value of a future is another future.
That's what the assert does in checked mode, but we shouldn't be able to hit
an assert.

R=floitsch@google.com

Review URL: https://codereview.chromium.org/1966523003 .
2016-05-11 13:10:46 +02:00
Florian Loitsch 257272fd42 Use internal const-constructor.
BUG= http://dartbug.com/25760
R=lrn@google.com

Review URL: https://codereview.chromium.org/1696453002 .
2016-02-12 20:29:41 +01:00
Todd Turnidge be3acab294 Use Stopwatch instead of DateTime to measure elapsed time in tests.
Improve timer_repeat_test.dart to not totally punt on testing the timing.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1683233003 .
2016-02-10 11:21:40 -08:00
Florian Loitsch 963f653b12 Make generic type of timeout-future the same as the one from the original.
R=lrn@google.com

Review URL: https://codereview.chromium.org//1299443002 .
2016-02-09 18:57:25 +01:00
Lasse R.H. Nielsen 8487d57e48 Add Future.any and Stream.fromFutures.
R=floitsch@google.com

Review URL: https://codereview.chromium.org/1563223002 .
2016-01-08 10:17:34 +01:00
Lasse R.H. Nielsen 5363e5c945 Make dart2js code retain the original stack trace for uncaught async errors.
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1383213002 .
2015-11-17 15:17:04 +01:00
Lasse R.H. Nielsen 5009e57524 If computation of Stream.periodic throws, forward the error to the stream.
Fixes issue #24766
BUG= http://dartbug.com/24766
R=floitsch@google.com

Review URL: https://codereview.chromium.org/1415533015.
2015-11-04 10:27:49 +01:00
Florian Schneider eb3186b7bd Fix flaky async test.
Replacing > with >= since finishing in 10 to 11 ms is to be expected.

BUG=dartbug.com/24788
R=floitsch@google.com

Review URL: https://codereview.chromium.org/1415413012 .
2015-11-03 23:30:00 +01:00
Florian Loitsch debf1d6f7c Don't zone-register async callbacks for every await call in the VM.
This has the nice side-effect that the stack_trace package provides nicer chains.
Fixes issue 23394.

R=hausner@google.com

Committed: https://github.com/dart-lang/sdk/commit/4dae43d63727268f2e0cc45d6020246eb49177b8
Reverted: https://github.com/dart-lang/sdk/commit/cb4f9fc925c5a92c6cf756751e38296383f66507

Review URL: https://codereview.chromium.org//1274133002 .
2015-08-17 19:26:50 +02:00
Florian Loitsch cb4f9fc925 Revert "Don't zone-register async callbacks for every await call in the VM."
This reverts commit 4dae43d637.

Review URL: https://codereview.chromium.org//1296973002 .
2015-08-17 16:43:35 +02:00
Florian Loitsch 4dae43d637 Don't zone-register async callbacks for every await call in the VM.
This has the nice side-effect that the stack_trace package provides nicer chains.
Fixes issue 23394.

R=hausner@google.com

Review URL: https://codereview.chromium.org//1274133002 .
2015-08-17 15:58:19 +02:00
Florian Loitsch 410b181e13 The return-value of 'asFuture' isn't necessarily related to the Stream's type.
R=lrn@google.com

Review URL: https://codereview.chromium.org//1295843002 .
2015-08-17 14:44:31 +02:00
Florian Loitsch 00aaf1708d Accept a computation that returns a Future for Future.delayed.
R=lrn@google.com

Review URL: https://codereview.chromium.org//1296623004 .
2015-08-17 11:34:43 +02:00
Florian Loitsch f2d08149fd Don't delay values and errors from async/await functions.
Fixes issue 23497.

R=hausner@google.com

Review URL: https://codereview.chromium.org//1287673002 .
2015-08-13 13:00:11 +02:00
Florian Loitsch ad38b75bb2 Forward cancel subscription in stream pipes.
R=lrn@google.com

Review URL: https://codereview.chromium.org//1284223005 .
2015-08-13 12:57:35 +02:00
Lasse R.H. Nielsen e9f48a37e8 Add getters for callbacks on StreamController.
R=floitsch@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//1278873008 .
2015-08-11 10:55:48 +02:00
Lasse R.H. Nielsen 0a35f7be3b Update Changelog.
Fix various typos and style nits.

BUG=23961
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1272593002 .
2015-08-05 12:58:30 +02:00
Lasse R.H. Nielsen ac33dfe194 Fix missing generic type parameters on streams.
Add test.

BUG= 23859
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1250373007 .
2015-08-03 14:21:17 +02:00
Lasse R.H. Nielsen 4a8a844c34 Add setters for callbacks on StreamController.
This allows you to create a stream controller at one point and
add or change the callbacks later. This can be useful if you
want to store a stream controller in a final instance field and
also want the controller to call instance methods as callbacks.

R=floitsch@google.com

Review URL: https://codereview.chromium.org//1242023007.
2015-07-17 12:03:00 +02:00
Lasse R.H. Nielsen f529055c1b Update documentation of StreamIterator, improve tests.
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1216123004.
2015-07-03 13:23:39 +02:00
Lasse R.H. Nielsen 80960767e9 Fix timing issue in stream_empty_test, and make analyzer expect it to pass.
Review URL: https://codereview.chromium.org//1188613008.
2015-06-16 13:33:53 +02:00
Lasse R.H. Nielsen fbedc2b86f Also iprove Future.value(null) and documentation of some Stream related classes.
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1177343004.
2015-06-16 11:38:07 +02:00
floitsch@google.com f4a1b28077 Move isolate tests to lib/isolate.
Moves most tests that require dart:isolate to the isolate-directory in the tests section.

Also enables the string_from_environment_default_value_test which didn't have "_test" in its name.

R=lrn@google.com

Review URL: https://codereview.chromium.org//1133983002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45701 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-11 17:59:51 +00:00
lrn@google.com 312a21cc1a Make Completer.complete handle a Future with a misbehaving "then" call.
Instead of throwing and getting into an invalid state (isChained but won't ever
complete), the synchronous error from trying to call "then" is used to complete
the future.

This should never happen in practice - it requires a "then" implementation that
is missing or throwing even when given valid arguments.

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1025133004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44629 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-23 09:09:32 +00:00
floitsch@google.com 7d6fa5fa38 Give test more time.
If a program is really slow, there might be some time before the next line is executed.
Apparently 1s is not enough.

In theory setTimeouts are supposed to be executed in the right order:
https://html.spec.whatwg.org/multipage/webappapis.html#dom-windowtimers-settimeout

Review URL: https://codereview.chromium.org//994013002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44372 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 14:48:31 +00:00
iposva@google.com 4b1ba9eb69 - Make sure we schedule another wakeup when handling a timeout
from the event handler.

Review URL: https://codereview.chromium.org//971193002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44191 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-03 19:14:30 +00:00
lrn@google.com 1f6d0e4f86 Make synchronous broadcast StreamController throw if adding event while adding event.
It already throws if there is more than one listener, but this change
also makes it throw if there is only one listener, for consistency.

Also add SynchronousStreamController abstract class.
It only contains documentation for synchronous stream controllers.

BUG= http://dartbug.com/22240
R=floitsch@google.com

Review URL: https://codereview.chromium.org//882713009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43946 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-23 10:36:58 +00:00