The code below does not analyze cleanly in DartPad running against Dart 2.5.0. We have seen a similar issue in our code that uses the built_redux package, presumably because it contains this pattern.
Note that the top-level function call analyzes just fine. Also, if the type parameter is removed from the Rectifier class the method call analyzes cleanly as well, even though T is never actually used, so that's a little confusing.
The error message is below.
Couldn't infer type parameter 'S extends State
'. Tried to infer 'FooState' for 'S extends State' which doesn't work: Type parameter 'S extends State' declared to extend 'State>'. The type 'FooState' was inferred from: Parameter 'state' declared as 'S' but argument is 'FooState'. Consider passing explicit type argument(s) to the generic.
If I try to specify values for the type parameters, as suggested, I see a different error:
'FooState' doesn't extend 'State
'.
class State<S extends State<S, B>, B extends Builder<S, B>> {}
class Builder<S extends State<S, B>, B extends Builder<S, B>> {}
class FooState implements State<FooState, FooBuilder> {}
class FooBuilder implements Builder<FooState, FooBuilder> {}
// Calling this analyzes cleanly
void rectify<S extends State<S, B>, B extends Builder<S, B>>(
S state,
B builder,
) {
print('barf');
}
// If we get rid of this type parameter and update the instantiation the error goes away
class Rectifier<T> {
// Calling this produces a static error
void rectify<S extends State<S, B>, B extends Builder<S, B>>(
S state,
B builder,
) {
print('barf');
}
}
void main() {
rectify(new FooState(), new FooBuilder()); // No static error
final rectifier = new Rectifier<Null>();
// Adding `<FooState, FooBuilder>` changes the error
rectifier.rectify(new FooState(), new FooBuilder()); // Static error
}
Metadata...
$ dart --version
Dart VM version: 2.5.0 (Fri Sep 6 20:39:27 2019 +0200) on "macos_x64"
$ dartanalyzer --version
dartanalyzer version 2.5.0
@kevmoo @vsmenon FYI This is preventing us from upgrading to Dart 2.5. Any chance of a 2.5.1 with a fix for this in it?
Did this regress? What was the last version it checked on?
@stereotype441
@vsmenon it works fine on 2.4.1
I'd also like to add that unit tests that exercise the problematic code in built_redux pass on the vm and chrome on dart 2.5 even though there are analysis errors shown in my IDE.
edit:
tests do fail with dart2js tho:
pub run build_runner test --delete-conflicting-outputs passes
pub run build_runner test --delete-conflicting-outputs -- -p chrome passes
pub run build_runner test --release --delete-conflicting-outputs -- -p chrome fails
I'm not sure if dart2js has the same issue as analyzer, but there might be a similar type substitution issue in CFE.
It looks like that CL merged, what's next?
Since the CL landed, I'm marking this bug as fixed. @robbecker-wf you're welcme to try running the analyzer from bleeding edge sources if you want to confirm that the fix works from you. Otherwise the fix should show up in the dev channel within roughly a week, and then be released as part of Dart 2.6.
I verified this fixes the analysis errors for us. Any chance this could be in a 2.5.1 patch release?
@robbecker-wf - are there still issues with dart2js? (See @davidmarne 's comment above.)
Correction .. I checked Marne's comment about built_redux https://github.com/dart-lang/sdk/issues/38365#issuecomment-532289864
I verified that the analyzer issues were resolved, but it looks like there are failures on 2.5.0 and dart sdk master branch (as of 4 days ago)
Dart 2.5.0 & Dart VM version: 2.6.0-edge.f6883ff7263d7be76797ee8beeb13d7215f784e7 (Thu Sep 19 16:16:20 2019 +0000) on "macos_x64"
pub run build_runner test --delete-conflicting-outputs passes
pub run build_runner test --delete-conflicting-outputs -- -p chrome fails w/ 1 test
pub run build_runner test --release --delete-conflicting-outputs -- -p chrome fails w/ 4 tests
Dart 2.4.1 all tests pass with all
edit: /CC @vsmenon
Do you have a log handy on the failures? Are they coming from dart2js?
On 2.6 when running pub run build_runner test --delete-conflicting-outputs -- -p chrome
this test fails here
https://github.com/davidmarne/built_redux/blob/master/test/unit/action_generics_test.dart#L42
with this output
00:03 +7 -1: test/unit/action_generics_test.dart: action generics all generic types [E]
NoSuchMethodError: '<Unexpected Null Value>'
method not found
Receiver: null
Arguments: []
dart:sdk_internal delayed
action_generics_test.dart 42:17 <fn>
dart:sdk_internal _async
action_generics_test.dart 25:31 <fn>
===== asynchronous gap ===========================
action_generics_test.dart 25:31 <fn>
No failures when running a dart2js build directly
pub run build_runner build --release --delete-conflicting-outputs test
FYI https://github.com/davidmarne/built_redux is an open source repo, so it's possible for anyone to try to reproduce errors with those commands listed.
(Switched build.yaml to compile with CSP and -O1 to see if I get any better info)
➜ built_redux git:(master) ✗ pub run build_runner test --release --delete-conflicting-outputs -- -p chrome --verbose-trace
[INFO] Generating build script completed, took 287ms
[INFO] Creating build script snapshot... completed, took 16.8s
[INFO] Building new asset graph completed, took 1.1s
[INFO] Checking for unexpected pre-existing outputs. completed, took 4ms
[INFO] build_web_compilers:entrypoint on test/unit/action_generics_test.dart.browser_test.dart:Running dart2js with --csp -O1 --packages=.package-edaa94602e2c6da51aab438c242a7c85 -otest/unit/action_generics_test.dart.browser_test.dart.js test/unit/action_generics_test.dart.browser_test.dart
[INFO] build_web_compilers:entrypoint on test/unit/collection_reducer_builders_test.dart.browser_test.dart:Running dart2js with --csp -O1 --packages=.package-33974ef1776fe822d873bd45bb11e482 -otest/unit/collection_reducer_builders_test.dart.browser_test.dart.js test/unit/collection_reducer_builders_test.dart.browser_test.dart
[INFO] build_web_compilers:entrypoint on test/unit/inheritance_test.dart.browser_test.dart:Running dart2js with --csp -O1 --packages=.package-dd36e5cb3edd7634c40abd8ea322a905 -otest/unit/inheritance_test.dart.browser_test.dart.js test/unit/inheritance_test.dart.browser_test.dart
[INFO] build_web_compilers:entrypoint on test/unit/store_test.dart.browser_test.dart:Running dart2js with --csp -O1 --packages=.package-312b8a7bbce1e91d7064a2fdeab3a70a -otest/unit/store_test.dart.browser_test.dart.js test/unit/store_test.dart.browser_test.dart
[INFO] build_web_compilers:entrypoint on test/unit/inheritance_test.dart.browser_test.dart:Dart2Js finished with:
Compiled 9,286,384 characters Dart to 1,038,864 characters JavaScript in 8.23 seconds
Dart file test/unit/inheritance_test.dart.browser_test.dart compiled to JavaScript: test/unit/inheritance_test.dart.browser_test.dart.js
[INFO] build_web_compilers:entrypoint on test/unit/action_generics_test.dart.browser_test.dart:Dart2Js finished with:
Compiled 9,286,747 characters Dart to 1,047,864 characters JavaScript in 8.32 seconds
Dart file test/unit/action_generics_test.dart.browser_test.dart compiled to JavaScript: test/unit/action_generics_test.dart.browser_test.dart.js
[INFO] build_web_compilers:entrypoint on test/unit/store_test.dart.browser_test.dart:Dart2Js finished with:
Compiled 9,293,856 characters Dart to 1,095,628 characters JavaScript in 8.47 seconds
Dart file test/unit/store_test.dart.browser_test.dart compiled to JavaScript: test/unit/store_test.dart.browser_test.dart.js
[INFO] build_web_compilers:entrypoint on test/unit/collection_reducer_builders_test.dart.browser_test.dart:Dart2Js finished with:
Compiled 9,292,108 characters Dart to 1,129,173 characters JavaScript in 8.62 seconds
Dart file test/unit/collection_reducer_builders_test.dart.browser_test.dart compiled to JavaScript: test/unit/collection_reducer_builders_test.dart.browser_test.dart.js
[INFO] build_web_compilers:entrypoint on test/unit/middleware_test.dart.browser_test.dart:Running dart2js with --csp -O1 --packages=.package-034ec13fc9232ab748a14d5d01bbf220 -otest/unit/middleware_test.dart.browser_test.dart.js test/unit/middleware_test.dart.browser_test.dart
[INFO] build_web_compilers:entrypoint on test/unit/middleware_test.dart.browser_test.dart:Running dart2js with --csp -O1 --packages=.package-86c502a9c7d6dafa7421c600a07aa50d -otest/unit/nested_models_test.dart.browser_test.dart.js test/unit/nested_models_test.dart.browser_test.dart
[INFO] build_web_compilers:entrypoint on test/unit/middleware_test.dart.browser_test.dart:Running dart2js with --csp -O1 --packages=.package-35ab53fc3a555bea7bce564c9ca1d5b3 -otest/unit/built_redux_test_utils_test.dart.browser_test.dart.js test/unit/built_redux_test_utils_test.dart.browser_test.dart
[INFO] build_web_compilers:entrypoint on test/unit/built_redux_test_utils_test.dart.browser_test.dart:Dart2Js finished with:
Compiled 9,290,481 characters Dart to 1,043,277 characters JavaScript in 5.67 seconds
Dart file test/unit/built_redux_test_utils_test.dart.browser_test.dart compiled to JavaScript: test/unit/built_redux_test_utils_test.dart.browser_test.dart.js
[INFO] build_web_compilers:entrypoint on test/unit/nested_models_test.dart.browser_test.dart:Dart2Js finished with:
Compiled 9,290,986 characters Dart to 1,049,617 characters JavaScript in 5.69 seconds
Dart file test/unit/nested_models_test.dart.browser_test.dart compiled to JavaScript: test/unit/nested_models_test.dart.browser_test.dart.js
[INFO] build_web_compilers:entrypoint on test/unit/middleware_test.dart.browser_test.dart:Dart2Js finished with:
Compiled 9,291,200 characters Dart to 1,065,945 characters JavaScript in 5.78 seconds
Dart file test/unit/middleware_test.dart.browser_test.dart compiled to JavaScript: test/unit/middleware_test.dart.browser_test.dart.js
[INFO] Running build completed, took 25.3s
[INFO] Caching finalized dependency graph completed, took 133ms
[INFO] Creating merged output dir `/var/folders/6d/d_rqcgj15dj_2gghvk2px2dr0000gm/T/build_runner_testyZ3P1d/` completed, took 20ms
[INFO] Writing asset manifest completed, took 0ms
[INFO] Succeeded after 25.5s with 1469 outputs (4754 actions)
Running tests...
00:01 +3 -1: test/unit/middleware_test.dart: middleware 1 middleware doubles count and updates state [E]
NoSuchMethodError: method not found: 'name' on null
middleware_test.dart.browser_test.dart.js 1615:33 Object._isSubtype
middleware_test.dart.browser_test.dart.js 1503:14 Object.assertIsSubtype
middleware_test.dart.browser_test.dart.js 26372:9 <fn>
middleware_test.dart.browser_test.dart.js 101:35 Object.holder.<computed>
middleware_test.dart.browser_test.dart.js 25272:47 main_closure_setup.call$1$numMiddleware
middleware_test.dart.browser_test.dart.js 25276:19 main_closure_setup.call$0
middleware_test.dart.browser_test.dart.js 25298:33 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
middleware_test.dart.browser_test.dart.js 22026:51 StackZoneSpecification__registerBinaryCallback__closure.call$0
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23246:29 Invoker_waitForOutstandingCallbacks_closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 22885:29 Declarer_test_closure.call$0
middleware_test.dart.browser_test.dart.js 23411:116 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23402:29 Invoker__onRun____closure.call$0
middleware_test.dart.browser_test.dart.js 11784:50 Future_Future_closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 21989:26 StackZoneSpecification__registerCallback_closure.call$0
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13498:174 _CustomZone.registerCallback$1$1
middleware_test.dart.browser_test.dart.js 13435:71 _CustomZone.bindCallbackGuarded$1
middleware_test.dart.browser_test.dart.js 3109:44 Object.Timer_Timer
middleware_test.dart.browser_test.dart.js 2704:9 Object.Future_Future
middleware_test.dart.browser_test.dart.js 23362:17 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23351:29 Invoker__onRun___closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
NoSuchMethodError: method not found: 'dispose$0' on null
middleware_test.dart.browser_test.dart.js 25282:25 main__closure.call$0
middleware_test.dart.browser_test.dart.js 2715:30 Object.Future_Future$sync
middleware_test.dart.browser_test.dart.js 24323:9 errorsDontStopTest_closure.call$0
middleware_test.dart.browser_test.dart.js 23257:51 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
middleware_test.dart.browser_test.dart.js 22026:51 StackZoneSpecification__registerBinaryCallback__closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 22017:26 StackZoneSpecification__registerBinaryCallback_closure.call$2
middleware_test.dart.browser_test.dart.js 2657:20 Object._asyncStartSync
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 2732:26 Object.Future_Future$sync
middleware_test.dart.browser_test.dart.js 24323:9 errorsDontStopTest_closure.call$0
middleware_test.dart.browser_test.dart.js 23257:51 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23246:29 Invoker_waitForOutstandingCallbacks_closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23184:38 Invoker._runTearDowns$0
middleware_test.dart.browser_test.dart.js 968:32 tear_off.<fn>
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23402:29 Invoker__onRun____closure.call$0
middleware_test.dart.browser_test.dart.js 11784:50 Future_Future_closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 21989:26 StackZoneSpecification__registerCallback_closure.call$0
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13498:174 _CustomZone.registerCallback$1$1
middleware_test.dart.browser_test.dart.js 13435:71 _CustomZone.bindCallbackGuarded$1
middleware_test.dart.browser_test.dart.js 3109:44 Object.Timer_Timer
middleware_test.dart.browser_test.dart.js 2704:9 Object.Future_Future
middleware_test.dart.browser_test.dart.js 23362:17 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23351:29 Invoker__onRun___closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
00:01 +7 -2: test/unit/middleware_test.dart: middleware 2 middlewares doubles count twice and updates state [E]
NoSuchMethodError: method not found: 'call$1' on null
middleware_test.dart.browser_test.dart.js 18521:235 Store_closure0.call$1
middleware_test.dart.browser_test.dart.js 10245:22 MappedListIterable.elementAt$1
middleware_test.dart.browser_test.dart.js 10073:21 MappedListIterable.reduce$1
middleware_test.dart.browser_test.dart.js 18444:176 Store$4$middleware
middleware_test.dart.browser_test.dart.js 7706:10 Object.Store$
middleware_test.dart.browser_test.dart.js 25273:29 main_closure_setup.call$1$numMiddleware
middleware_test.dart.browser_test.dart.js 25323:33 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
middleware_test.dart.browser_test.dart.js 22026:51 StackZoneSpecification__registerBinaryCallback__closure.call$0
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23246:29 Invoker_waitForOutstandingCallbacks_closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 22885:29 Declarer_test_closure.call$0
middleware_test.dart.browser_test.dart.js 23411:116 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23402:29 Invoker__onRun____closure.call$0
middleware_test.dart.browser_test.dart.js 11784:50 Future_Future_closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 21989:26 StackZoneSpecification__registerCallback_closure.call$0
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13498:174 _CustomZone.registerCallback$1$1
middleware_test.dart.browser_test.dart.js 13435:71 _CustomZone.bindCallbackGuarded$1
middleware_test.dart.browser_test.dart.js 3109:44 Object.Timer_Timer
middleware_test.dart.browser_test.dart.js 2704:9 Object.Future_Future
middleware_test.dart.browser_test.dart.js 23362:17 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23351:29 Invoker__onRun___closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
NoSuchMethodError: method not found: 'dispose$0' on null
middleware_test.dart.browser_test.dart.js 25282:25 main__closure.call$0
middleware_test.dart.browser_test.dart.js 2715:30 Object.Future_Future$sync
middleware_test.dart.browser_test.dart.js 24323:9 errorsDontStopTest_closure.call$0
middleware_test.dart.browser_test.dart.js 23257:51 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
middleware_test.dart.browser_test.dart.js 22026:51 StackZoneSpecification__registerBinaryCallback__closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 22017:26 StackZoneSpecification__registerBinaryCallback_closure.call$2
middleware_test.dart.browser_test.dart.js 2657:20 Object._asyncStartSync
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 2732:26 Object.Future_Future$sync
middleware_test.dart.browser_test.dart.js 24323:9 errorsDontStopTest_closure.call$0
middleware_test.dart.browser_test.dart.js 23257:51 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23246:29 Invoker_waitForOutstandingCallbacks_closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23184:38 Invoker._runTearDowns$0
middleware_test.dart.browser_test.dart.js 968:32 tear_off.<fn>
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23402:29 Invoker__onRun____closure.call$0
middleware_test.dart.browser_test.dart.js 11784:50 Future_Future_closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 21989:26 StackZoneSpecification__registerCallback_closure.call$0
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13498:174 _CustomZone.registerCallback$1$1
middleware_test.dart.browser_test.dart.js 13435:71 _CustomZone.bindCallbackGuarded$1
middleware_test.dart.browser_test.dart.js 3109:44 Object.Timer_Timer
middleware_test.dart.browser_test.dart.js 2704:9 Object.Future_Future
middleware_test.dart.browser_test.dart.js 23362:17 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23351:29 Invoker__onRun___closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
00:01 +8 -3: test/unit/middleware_test.dart: middleware combine works with tripleIt [E]
NoSuchMethodError: method not found: 'call$1' on null
middleware_test.dart.browser_test.dart.js 18521:235 Store_closure0.call$1
middleware_test.dart.browser_test.dart.js 10245:22 MappedListIterable.elementAt$1
middleware_test.dart.browser_test.dart.js 10073:21 MappedListIterable.reduce$1
middleware_test.dart.browser_test.dart.js 18444:176 Store$4$middleware
middleware_test.dart.browser_test.dart.js 7706:10 Object.Store$
middleware_test.dart.browser_test.dart.js 25273:29 main_closure_setup.call$1$numMiddleware
middleware_test.dart.browser_test.dart.js 25276:19 main_closure_setup.call$0
middleware_test.dart.browser_test.dart.js 25380:33 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23246:29 Invoker_waitForOutstandingCallbacks_closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 22885:29 Declarer_test_closure.call$0
middleware_test.dart.browser_test.dart.js 23411:116 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23402:29 Invoker__onRun____closure.call$0
middleware_test.dart.browser_test.dart.js 11784:50 Future_Future_closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 21989:26 StackZoneSpecification__registerCallback_closure.call$0
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13498:174 _CustomZone.registerCallback$1$1
middleware_test.dart.browser_test.dart.js 13435:71 _CustomZone.bindCallbackGuarded$1
middleware_test.dart.browser_test.dart.js 3109:44 Object.Timer_Timer
middleware_test.dart.browser_test.dart.js 2704:9 Object.Future_Future
middleware_test.dart.browser_test.dart.js 23362:17 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23351:29 Invoker__onRun___closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
NoSuchMethodError: method not found: 'dispose$0' on null
middleware_test.dart.browser_test.dart.js 25282:25 main__closure.call$0
middleware_test.dart.browser_test.dart.js 2715:30 Object.Future_Future$sync
middleware_test.dart.browser_test.dart.js 24323:9 errorsDontStopTest_closure.call$0
middleware_test.dart.browser_test.dart.js 23257:51 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
middleware_test.dart.browser_test.dart.js 22026:51 StackZoneSpecification__registerBinaryCallback__closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 22017:26 StackZoneSpecification__registerBinaryCallback_closure.call$2
middleware_test.dart.browser_test.dart.js 2657:20 Object._asyncStartSync
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 2732:26 Object.Future_Future$sync
middleware_test.dart.browser_test.dart.js 24323:9 errorsDontStopTest_closure.call$0
middleware_test.dart.browser_test.dart.js 23257:51 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23246:29 Invoker_waitForOutstandingCallbacks_closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23184:38 Invoker._runTearDowns$0
middleware_test.dart.browser_test.dart.js 968:32 tear_off.<fn>
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23402:29 Invoker__onRun____closure.call$0
middleware_test.dart.browser_test.dart.js 11784:50 Future_Future_closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 21989:26 StackZoneSpecification__registerCallback_closure.call$0
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13498:174 _CustomZone.registerCallback$1$1
middleware_test.dart.browser_test.dart.js 13435:71 _CustomZone.bindCallbackGuarded$1
middleware_test.dart.browser_test.dart.js 3109:44 Object.Timer_Timer
middleware_test.dart.browser_test.dart.js 2704:9 Object.Future_Future
middleware_test.dart.browser_test.dart.js 23362:17 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23351:29 Invoker__onRun___closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
00:01 +10 -4: test/unit/middleware_test.dart: middleware combineNested works with SubCounter doubleIt [E]
NoSuchMethodError: method not found: 'call$1' on null
middleware_test.dart.browser_test.dart.js 18521:235 Store_closure0.call$1
middleware_test.dart.browser_test.dart.js 10245:22 MappedListIterable.elementAt$1
middleware_test.dart.browser_test.dart.js 10073:21 MappedListIterable.reduce$1
middleware_test.dart.browser_test.dart.js 18444:176 Store$4$middleware
middleware_test.dart.browser_test.dart.js 7706:10 Object.Store$
middleware_test.dart.browser_test.dart.js 25273:29 main_closure_setup.call$1$numMiddleware
middleware_test.dart.browser_test.dart.js 25276:19 main_closure_setup.call$0
middleware_test.dart.browser_test.dart.js 25405:33 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23246:29 Invoker_waitForOutstandingCallbacks_closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 22885:29 Declarer_test_closure.call$0
middleware_test.dart.browser_test.dart.js 23411:116 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23402:29 Invoker__onRun____closure.call$0
middleware_test.dart.browser_test.dart.js 11784:50 Future_Future_closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 21989:26 StackZoneSpecification__registerCallback_closure.call$0
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13498:174 _CustomZone.registerCallback$1$1
middleware_test.dart.browser_test.dart.js 13435:71 _CustomZone.bindCallbackGuarded$1
middleware_test.dart.browser_test.dart.js 3109:44 Object.Timer_Timer
middleware_test.dart.browser_test.dart.js 2704:9 Object.Future_Future
middleware_test.dart.browser_test.dart.js 23362:17 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23351:29 Invoker__onRun___closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
NoSuchMethodError: method not found: 'dispose$0' on null
middleware_test.dart.browser_test.dart.js 25282:25 main__closure.call$0
middleware_test.dart.browser_test.dart.js 2715:30 Object.Future_Future$sync
middleware_test.dart.browser_test.dart.js 24323:9 errorsDontStopTest_closure.call$0
middleware_test.dart.browser_test.dart.js 23257:51 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
middleware_test.dart.browser_test.dart.js 22026:51 StackZoneSpecification__registerBinaryCallback__closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 22017:26 StackZoneSpecification__registerBinaryCallback_closure.call$2
middleware_test.dart.browser_test.dart.js 2657:20 Object._asyncStartSync
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 2732:26 Object.Future_Future$sync
middleware_test.dart.browser_test.dart.js 24323:9 errorsDontStopTest_closure.call$0
middleware_test.dart.browser_test.dart.js 23257:51 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
middleware_test.dart.browser_test.dart.js 11491:12 _wrapJsFunctionForAsync_closure.call$2
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23246:29 Invoker_waitForOutstandingCallbacks_closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23184:38 Invoker._runTearDowns$0
middleware_test.dart.browser_test.dart.js 968:32 tear_off.<fn>
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23402:29 Invoker__onRun____closure.call$0
middleware_test.dart.browser_test.dart.js 11784:50 Future_Future_closure.call$0
middleware_test.dart.browser_test.dart.js 21949:16 StackZoneSpecification._stack_zone_specification$_run$1$2
middleware_test.dart.browser_test.dart.js 21989:26 StackZoneSpecification__registerCallback_closure.call$0
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13498:174 _CustomZone.registerCallback$1$1
middleware_test.dart.browser_test.dart.js 13435:71 _CustomZone.bindCallbackGuarded$1
middleware_test.dart.browser_test.dart.js 3109:44 Object.Timer_Timer
middleware_test.dart.browser_test.dart.js 2704:9 Object.Future_Future
middleware_test.dart.browser_test.dart.js 23362:17 <fn>
middleware_test.dart.browser_test.dart.js 2692:15 _wrapJsFunctionForAsync_closure.$protected
===== asynchronous gap ===========================
middleware_test.dart.browser_test.dart.js 13514:222 _CustomZone.registerBinaryCallback$3$1
middleware_test.dart.browser_test.dart.js 2700:30 Object._wrapJsFunctionForAsync
middleware_test.dart.browser_test.dart.js 23351:29 Invoker__onRun___closure.call$0
middleware_test.dart.browser_test.dart.js 3136:16 StaticClosure._rootRun
middleware_test.dart.browser_test.dart.js 13471:158 _CustomZone.run$1$1
middleware_test.dart.browser_test.dart.js 3305:89 Object._runZoned
00:01 +18 -4: Some tests failed.
➜ built_redux git:(master) ✗
@vsmenon Does that help at all?
@sigmundch - can you take a look? There may be a dart2js regression here.
@scheglov is checking whether it's possible to cherry-pick the analyzer fix back to 2.5.0 (54a1bd9624d81217d40160ddb699f05a16d87358). It's possible that there will be trouble because the fix was made after the switch to Summary2 format, and 2.5.0 likely still uses Summary1. He will update with details once we know whether it's feasible.
@robbecker-wf it appears there are different issues with ddc and dart2js.
with dart2js: it appears that the dart2js tests on this package have been failing for a while. In particular, I got the same error in all of 2.4.1, 2.5.0, and 2.6.0-dev.2.0 when running tests with --release. Given that this is not a new failure, my guess is that this is not a regression. I haven't looked in detail, but it is likely that the test itself or code in the package needs fixing. The test that fails is middleware_test as you shown above.
with ddc: it appears ddc works fine in 2.4.1, 2.5.0, 2.6.0-dev.0.0, 2.6.0-dev.1.0, but action_generics_test starts to fail in 2.6.0-dev.2.0. This does appear like a regression, so I'll continue working on bisecting it. I'll keep you posted on what I find.
Oh, right .. I might have misspoke. Looks like on 2.4.1 dart2js there are the same 4 failures
pub run build_runner test --release --delete-conflicting-outputs -- -p chrome
@davidmarne
@vsmenon - it seems the regression here is a different issue related to the change for const/overriden fields. The regression appeared with ce6f40b, went away with the revert, but reappeared with the second attempt in a6cc7b9
Filed #38549 to track this issue separately
CL for 2.5.0 https://dart-review.googlesource.com/c/sdk/+/118660
CL for
2.5.0https://dart-review.googlesource.com/c/sdk/+/118660
@athomas is this sufficient for you to make the patch release, or do you need us to file a cherry-pick request?
@stereotype441 @scheglov Please do file the cherry-pick request (for visibility and to have a separate thread to discuss the cherry-pick) and also include what the changelog should say about this fix.
@stereotype441 @scheglov Please do file the cherry-pick request (for visibility and to have a separate thread to discuss the cherry-pick) and also include what the changelog should say about this fix.
Ok, merge request filed: https://github.com/dart-lang/sdk/issues/38567
Most helpful comment
I verified this fixes the analysis errors for us. Any chance this could be in a 2.5.1 patch release?