Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(399)

Issue 1609093003: fixes #25482, flatten Futures in strong mode so Future.then works (Closed)

Created:
4 years, 11 months ago by Jennifer Messerly
Modified:
4 years, 11 months ago
Reviewers:
vsm, Brian Wilkerson
CC:
reviews_dartlang.org, Leaf
Base URL:
git@github.com:dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

fixes #25482, flatten futures in strong mode so Future.then works Also fixes https://github.com/dart-lang/dev_compiler/issues/228 A few tweaks were made to the propagatedType inference for Future.then: * only record type if better than static type * only go down this path when strong mode is off also renames tests: test_pseudoGeneric to test_genericMethod. R=brianwilkerson@google.com, vsm@google.com Committed: https://github.com/dart-lang/sdk/commit/9a4b1c36ce5f6b770b96c36847f63c3983cc662e

Patch Set 1 #

Patch Set 2 : sort, strongMode flag #

Total comments: 7

Patch Set 3 : refactor #

Patch Set 4 : #

Patch Set 5 : #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+373 lines, -259 lines) Patch
M pkg/analyzer/lib/dart/element/element.dart View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
M pkg/analyzer/lib/dart/element/type.dart View 1 2 5 chunks +30 lines, -10 lines 3 comments Download
M pkg/analyzer/lib/src/dart/element/element.dart View 1 2 2 chunks +8 lines, -5 lines 0 comments Download
M pkg/analyzer/lib/src/dart/element/type.dart View 1 2 10 chunks +162 lines, -9 lines 1 comment Download
M pkg/analyzer/lib/src/generated/element_handle.dart View 1 2 1 chunk +3 lines, -0 lines 0 comments Download
M pkg/analyzer/lib/src/generated/error_verifier.dart View 1 2 3 2 chunks +2 lines, -4 lines 0 comments Download
M pkg/analyzer/lib/src/generated/resolver.dart View 1 2 2 chunks +4 lines, -5 lines 0 comments Download
M pkg/analyzer/lib/src/generated/static_type_analyzer.dart View 1 2 6 chunks +7 lines, -136 lines 0 comments Download
M pkg/analyzer/lib/src/generated/testing/test_type_provider.dart View 1 2 3 4 3 chunks +23 lines, -1 line 0 comments Download
M pkg/analyzer/lib/src/generated/type_system.dart View 1 2 3 chunks +17 lines, -1 line 0 comments Download
M pkg/analyzer/test/generated/resolver_test.dart View 1 2 3 4 11 chunks +111 lines, -88 lines 0 comments Download
M pkg/analyzer/test/src/task/strong/strong_test_helper.dart View 1 2 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 13 (3 generated)
vsm
https://codereview.chromium.org/1609093003/diff/20001/pkg/analyzer/lib/src/dart/element/type.dart File pkg/analyzer/lib/src/dart/element/type.dart (right): https://codereview.chromium.org/1609093003/diff/20001/pkg/analyzer/lib/src/dart/element/type.dart#newcode1703 pkg/analyzer/lib/src/dart/element/type.dart:1703: // the return type so it is Future< flatten(S) ...
4 years, 11 months ago (2016-01-20 01:32:20 UTC) #3
Jennifer Messerly
In strong mode, this defines: Future< T > to be Future< flatten(T) > flatten(T) is ...
4 years, 11 months ago (2016-01-20 01:40:48 UTC) #4
Brian Wilkerson
LGTM https://codereview.chromium.org/1609093003/diff/20001/pkg/analyzer/lib/src/dart/element/type.dart File pkg/analyzer/lib/src/dart/element/type.dart (right): https://codereview.chromium.org/1609093003/diff/20001/pkg/analyzer/lib/src/dart/element/type.dart#newcode20 pkg/analyzer/lib/src/dart/element/type.dart:20: // Or perhaps to TypeSystem? It does seem ...
4 years, 11 months ago (2016-01-20 16:55:15 UTC) #5
Jennifer Messerly
PTAL. Think I've addressed comments. Looks nicer with Brian's fixes. Because of how dart:async is ...
4 years, 11 months ago (2016-01-20 23:21:51 UTC) #6
Jennifer Messerly
https://codereview.chromium.org/1609093003/diff/20001/pkg/analyzer/lib/src/dart/element/type.dart File pkg/analyzer/lib/src/dart/element/type.dart (right): https://codereview.chromium.org/1609093003/diff/20001/pkg/analyzer/lib/src/dart/element/type.dart#newcode20 pkg/analyzer/lib/src/dart/element/type.dart:20: // Or perhaps to TypeSystem? On 2016/01/20 23:21:51, John ...
4 years, 11 months ago (2016-01-20 23:22:50 UTC) #7
Brian Wilkerson
LGTM. Much cleaner. We should add some tests of 'flatten' at some point, but this ...
4 years, 11 months ago (2016-01-20 23:50:36 UTC) #8
vsm
lgtm https://codereview.chromium.org/1609093003/diff/80001/pkg/analyzer/lib/dart/element/type.dart File pkg/analyzer/lib/dart/element/type.dart (right): https://codereview.chromium.org/1609093003/diff/80001/pkg/analyzer/lib/dart/element/type.dart#newcode90 pkg/analyzer/lib/dart/element/type.dart:90: DartType flattenFutures(TypeSystem typeSystem); Might be cleaner to move ...
4 years, 11 months ago (2016-01-21 19:17:46 UTC) #9
Jennifer Messerly
https://codereview.chromium.org/1609093003/diff/80001/pkg/analyzer/lib/dart/element/type.dart File pkg/analyzer/lib/dart/element/type.dart (right): https://codereview.chromium.org/1609093003/diff/80001/pkg/analyzer/lib/dart/element/type.dart#newcode90 pkg/analyzer/lib/dart/element/type.dart:90: DartType flattenFutures(TypeSystem typeSystem); On 2016/01/21 19:17:46, vsm wrote: > ...
4 years, 11 months ago (2016-01-21 19:31:38 UTC) #10
Brian Wilkerson
https://codereview.chromium.org/1609093003/diff/80001/pkg/analyzer/lib/dart/element/type.dart File pkg/analyzer/lib/dart/element/type.dart (right): https://codereview.chromium.org/1609093003/diff/80001/pkg/analyzer/lib/dart/element/type.dart#newcode90 pkg/analyzer/lib/dart/element/type.dart:90: DartType flattenFutures(TypeSystem typeSystem); Personally, I'd say to leave it ...
4 years, 11 months ago (2016-01-21 20:20:57 UTC) #11
Jennifer Messerly
4 years, 11 months ago (2016-01-22 21:30:10 UTC) #13
Message was sent while issue was closed.
Committed patchset #5 (id:80001) manually as
9a4b1c36ce5f6b770b96c36847f63c3983cc662e (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698