Instead of just giving up try to give as much information as possible
including error code, error returned by Dart_StringFromUtf8 and
ascii portion of the OS error message.
We are making this change because we are getting reports of
ProcessException being thrown with "OS error message was a
not a utf8 string." message. There is no way to reproduce
these situations so instead we are going to add additional
information into the fallback message to aid the investigation.
TEST=tested manually by simulating fallback to the newly added code
Bug: b/178383611
Change-Id: Idf528dc762723694145a15aa07320220e8af9bfc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/181200
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
* Correctly handle _Smi type when producing TTS for it.
Previously it would not correctly establish that an instance
of _Smi is assignable to _Smi causing it to always fall through
into runtime system;
* Correctly handle Null type as a type argument when checking C<Null>
is C<X>, if Null is assignable to X we need to explicitly check if
type argument is Null because cid ranges don't really handle this
check.
* Strengthen the assert checking that TTS specialization succeeded:
check that specialization is (bitwise) different from the previous
version of the stub. If they are equal that means specialization
failed.
TEST=vm/cc/TTS_SubtypeRangeCheck,vm/cc/TTS_Smi
Change-Id: I151a89b52ae07d7e5acce14f59bcb3226bfa1f36
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180842
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
The single-entry / single-exit patterns of the CFG prevent inlined
throw statements and throw expressions from having exit edges like a
statement-level throw. If the join block is not reachable on one path
of a diamond, the kills on the infeasible path can be ignored in the
join.
Change-Id: I3e227f450091cabbf240858c1a369d91ec97a60d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180761
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
The single-entry / single-exit patterns of the CFG prevent inlined
throw statements and throw expressions from having exit edges like a
statement-level throw. If the join block is not reachable on one path
of a diamond, the condition can be substituted as if the join is on
the other path.
Change-Id: I9cc1058b4ca0cab892db7f1197141c5157d2bc5b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180724
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
The type of the `onError` parameter of Future<T>.catchError is just Function,
but the function can either have signature `FutureOr<T> Function(dynamic)` or
`FutureOr<T> Function(dynamic, StackTrace)`. This change adds checks for return
statements in a function literal passed to `onError`, and the return type of a
function-typed expression passed to `onError`.
We still need to check parameter types.
https://github.com/dart-lang/sdk/issues/35825
Change-Id: I806d9d30e595fb9d63ae669f3c30c428b60fdf4a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180880
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Just some preliminary formatting to make it easier to see the diffs
when I merge the changes from the version in google3. The diff
algorithm gerrit uses doesn't handle the change in indentation very
well.
Change-Id: I2a4daa50d0051140569d51bea5845a0366ba1dad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180700
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Included commits:
```
git log --format="%C(auto) %h %s" 0402c467547daa5886352cb315338ae54552d21c..0e657414a472e74ca5dd76ae0db50cc060251dec
0e657414 Show outdated and discontinued in listing in get (#2844)
f842ae22 Include a deprecation notice in .packages (#2845)
```
Change-Id: Iaf03c5ea0380c16332ce65f2c4b3bf935873d30c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180841
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
The analyzer has not been migrated, so this is based on manual
inspecation of the API about what can be `null` for now.
Note with the analyzer from master (running in nnbd by default) this
file contains many nullable to non-null assignments. However, we cannot
migrate this file to nnbd yet because of the language version it's used
in.
Closes: https://github.com/dart-lang/sdk/issues/44763
Change-Id: If0432341e7fefb973b0229bcc325eeefed84f7cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180821
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2021-01-24 irina.arkhipets@gmail.com Issue #983: Static warning checks corrected.
2021-01-22 irina.arkhipets@gmail.com Issue #983: triple-shift folders re-named correctly, typo in the library paths updated for 2 tests.
2021-01-21 sgrekhov@unipro.ruFixes#985. LateInitializationError removed
2021-01-20 sgrekhov@unipro.ruFixes#982. Add tests for The future value type of an asynchronous non-generator function part of NNBD spec
2021-01-19 irina.arkhipets@gmail.com Issue #462: NNBD type-normalization tests for weak mode added.
2021-01-19 irina.arkhipets@gmail.com Issue #462: NNBD type-aliases tests for weak mode added.
2021-01-19 irina.arkhipets@gmail.com Issue #462: NNBD tripple-shift tests for weak mode added.
2021-01-19 irina.arkhipets@gmail.com Issue #462: NNBD tests for weak mode added for the override checkings.
2021-01-19 irina.arkhipets@gmail.com Issue #462: NNBD tests for weak mode added (Leatest-greatest-closures).
2021-01-19 irina.arkhipets@gmail.com Issue #462: NNBD tests for weak mode added (Leatest-greatest-closures).
2021-01-18 sgrekhov@unipro.ruFixes#981. Add tests for Return statements part of NNBD spec
2021-01-18 irina.arkhipets@gmail.com Issue #462: NNBD tests for weak mode corrected according to the current Spec changes.
2021-01-14 irina.arkhipets@gmail.com Issue #462: Additional comments regarding the constant evaluation issues added to weak mode tests.
2021-01-14 sgrekhov@unipro.ruFixes#980. Remove warnings expectations for overriding default values of optional parameters tests
2021-01-13 irina.arkhipets@gmail.com Issue #462: Tests for weak mode added to nnbd/weak/flow-analysis directory.
2021-01-12 sgrekhov@unipro.ru#978. Weak mode test changes
2021-01-12 irina.arkhipets@gmail.com Issue #462: Tests for weak mode added to nnbd/weak directory.
2021-01-11 sgrekhov@unipro.ruFixes#978. Tests updated according to the "flow analysis boolean variable" feature
2020-12-25 irina.arkhipets@gmail.com Issues #463: Tests for weak mode added.
2020-12-25 irina.arkhipets@gmail.com Issues #462, #463: Moved or added new nnbd tests for weak mode, added new tests for strong mode.
2020-12-24 sgrekhov@unipro.ru#970. Usr correct values for ProcessSignal.sigusr1 and ProcessSignal.sigusr2 on Mac
2020-12-24 irina.arkhipets@gmail.com Issue #462: 1. Added nnbd tests for weak mode: exports_*, expression_typing_*, extension_method_resolution_*, future_flattening_*. 2. Moved and re-factored nnbd extension_method_resolution_*, future_flattening_* tests for weak mode into weak folder. 3. Copyrights updated Issue #463: Two exports* tests for strong mode added.
2020-12-24 sgrekhov@unipro.ruFixes#496. Change tested date to 1 second instead of 1 day to reduce probability to change timezone on DST
2020-12-23 sgrekhov@unipro.ruFixes#473. Remove UtilsHtml directory
2020-12-23 irina.arkhipets@gmail.com Fix for Issue #462: 1. Added nnbd tests for weak mode: assignability_*, const_evaluation_*, const_objects_*, const_type_var_elimination_*. 2. Moved and re-factored nnbd exports_* tests for weak mode into weak folder.
2020-12-10 sgrekhov@unipro.ruFixes#976. Remove obsolete errors expectations
2020-12-10 sgrekhov@unipro.ruFixes#975. Fix wrong expected compile time error type
2020-12-07 sgrekhov@unipro.ru Flag Requirements=nnbd-weak added to the tests that run legacy code
Cq-Include-Trybots: dart/try:analyzer-nnbd-linux-release-try,dart2js-nnbd-linux-x64-chrome-try,ddc-nnbd-linux-release-chrome-try,front-end-nnbd-linux-release-x64-try,vm-kernel-nnbd-linux-release-simarm64-try,vm-kernel-nnbd-linux-release-x64-try,vm-kernel-nnbd-mac-release-x64-try,vm-kernel-nnbd-win-release-x64-try,vm-kernel-precomp-nnbd-linux-release-x64-try
Change-Id: I69acc5c0a28fd2e7a2d38f6c9062e5a5854bdfa6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180823
Reviewed-by: William Hesse <whesse@google.com>
From the times where some of the type arguments should have been
reported as warnings, the procedure was run twice in two different
modes, in order to report some issues as errors and some as warnings.
This CL is a cleanup that invokes the procedure once. Additionally, a
refactoring of the return value discipline is made: it always returns
a list and never returns null. An empty list is returned if there are
no issues.
Change-Id: Id497216bf51f49c86517cf16a52f03da5b65b1fd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180570
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
This reverts commit af4330d382, relands original e35120cfd14ed09302596e9fa20d8e845e8e2668(in patchset 1) with fixes for the tests(in subsequent patchsets).
Change-Id: I025022d242a75ad94b3616ff78aef28b7b5f372b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180603
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
The type of the `onError` parameter of Future<T>.catchError is just Function,
but the function can either have signature `FutureOr<T> Function(dynamic)` or
`FutureOr<T> Function(dynamic, StackTrace)`. This change adds checks for return
statements in a function literal passed to `onError`, and the return type of a
function-typed expression passed to `onError`.
We still need to check parameter types.
https://github.com/dart-lang/sdk/issues/35825
Change-Id: I3a1d1c444e298c5816fcd1d4bc537f7b87fa3da1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176221
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This converts `return e` in async methods in opt-in libraries into
return let v = e in v is Future<FTV> ? await v ; v
where FTV is the future value type of the enclosing function.
Closes#44395Closes#44396Closes#44397Closes#44399
TEST=existing tests
Change-Id: I59687039bfe4a97ffdaa55ac0f193ca4fb208f44
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175310
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>