Commit Graph

7128 Commits

Author SHA1 Message Date
Jens Johansen cf4e044e07 [parser] New syntax for null aware index
Change-Id: Iea6b29eb897eb01863a92b223e270d225c3ca1ba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135903
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-20 12:33:28 +00:00
Konstantin Shcheglov 81d4cc6bc9 Issue 40701. Include 'late' into unlinked API signature.
R=brianwilkerson@google.com, pquitslund@google.com

Bug: https://github.com/dart-lang/sdk/issues/40701
Change-Id: Ia11ff4e65e779c4a370a6fec539564c0533bffa3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136529
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-20 04:16:35 +00:00
Konstantin Shcheglov ff8a5dfb72 Issue 40689. Add isStatic to available Declaration.
I did not use it yet, but filtered out all not top-level declarations
that are not CONSTRUCTOR or ENUM_CONSTANT. But isStatic might be used
if we decide to suggest static getters.

R=brianwilkerson@google.com, pquitslund@google.com

Bug: https://github.com/dart-lang/sdk/issues/40689
Change-Id: I1c86754d9dbbc1422defc06a8fe6a47fa0bf6f98
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136410
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-19 21:29:24 +00:00
Konstantin Shcheglov ba579eef57 Issue 39791. Infer Object? instead of Null or Never.
Bug: https://github.com/dart-lang/sdk/issues/39791
Change-Id: Iac4dae42b30d9358d818b78c77462312bab672fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136461
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-19 21:01:56 +00:00
Jens Johansen 707ecda05e [analyzer] Add test for bang before type arguments
In https://dart-review.googlesource.com/c/sdk/+/128402 I was asked to
add a test to the analyzer.
This is the (somewhat belated) follow-up that does that.

Change-Id: I7065882b458a480b12d79a4913a59e2bee4f35da
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136184
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-02-19 07:45:59 +00:00
Konstantin Shcheglov 21e944f1bc Use promotedBound for TypeParameterType promotion.
Change-Id: I217a8b9140f60d4f6a9ffc052564388c24c1a7ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-18 17:11:44 +00:00
Paul Berry d5e6ab4195 Migration: propagate non-null intent through compound nodes.
A compound node represents a logical OR ("this node is nullable if and
only if one or more of its components is nullable").  Therefore, if
*all* of the components of a compound node have non-null intent, we
should consider the compound node itself to have non-null intent.
This fixes a problem that was preventing the migration tool from
respecting a "/*!*/" hint applied to the type parameter of a typedef.

Change-Id: Iec2f9d6968378707ba692be7b97f750cf53a8b85
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135786
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-02-14 21:25:01 +00:00
Konstantin Shcheglov 6ae2a011d5 Use named parameters in TypeParameterTypeImpl.
Change-Id: I643acc61f53dfaf2e0c9bec7970fa6c33ff26850
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135964
Reviewed-by: Paul Berry <paulberry@google.com>
2020-02-14 21:19:26 +00:00
Konstantin Shcheglov 63ed271759 Create fresh TypeParameterElement(s) for executable members.
Change-Id: I19aa9b529470654460d5ead84996e5308a217291
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135980
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-14 19:21:27 +00:00
Konstantin Shcheglov 6635b1d9a0 Issue 40396. Report BODY_MAY_COMPLETE_NORMALLY when a body that is expected to return a potentially non-nullable type may complete normally.
Bug: https://github.com/dart-lang/sdk/issues/40396
Change-Id: I58d48a5191950f55d6a59b163d122150e7ad3d09
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135582
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-14 19:13:03 +00:00
Konstantin Shcheglov 5ec14d6e14 DartObjectImpl.isIdentical() should compare types.
Change-Id: I6b510351f5703956d77e3cae2dd31490c819f87f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135781
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-14 16:56:47 +00:00
Daco Harkes c1467ab5d3 [vm/ffi] Change asFunction and lookFunction to extension methods
This prevents them from being called dynamically.
Moreover, it prevents asFunction from being called on a non-NativeFunction type argument, simplifying the amount of manual checks.

Note that this CL had to change the CFE and analzyer, and their tests (including mock_sdk) as well.

This can potentially be a breaking change, as the extension methods are only visible when `dart:ffi` is imported, while methods on objects are always visible.

Issue: https://github.com/dart-lang/sdk/issues/35903

Change-Id: I1e291f154228d5d9a34b21a022088bf493f6557d
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-mac-debug-x64-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-debug-x64-try,vm-kernel-nnbd-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135463
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-02-14 15:46:37 +00:00
Konstantin Shcheglov 5c332bea91 Stop using 'factory something() => null;' in most cases.
I did not change MockSdk, to avoid conflict with
https://dart-review.googlesource.com/c/sdk/+/135241

R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/40603
Change-Id: I9f0af20f5914b5ac1aefee02aa8052db269529b5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135532
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-12 22:58:57 +00:00
Konstantin Shcheglov 84ff9e5008 Fix NullabilityEliminator to substitute type parameters in bounds.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I9b3d986a52f8006854b23db600493566aea86cb9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135527
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2020-02-12 22:08:27 +00:00
Konstantin Shcheglov 78b1e15637 Don't report NULLABLE_TYPE_IN_CATCH_CLAUSE in opt-out libraries.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: Iabd6a4b23c81e25bc7045db6d562c38567c81921
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135522
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-12 20:22:37 +00:00
Konstantin Shcheglov 0fa3d79a3f Move applying LEGACY_ERASURE to isCorrectOverrideOf().
Change-Id: Ic9ebd89be8dbbb560b47ae9f96988b552b75ddaa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135482
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-12 20:01:27 +00:00
Konstantin Shcheglov 08778f9045 In legacy libraries apply LEGACY_ERASURE to concrete members.
This fixes with unforked SDK:
* language_2/abstract/equal_test
* language_2/abstract/object_method_test

Change-Id: I8d183f5a15eef29c590fe56f40e813d56ba6ad54
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135359
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-12 18:12:57 +00:00
Jens Johansen 81d4ac07d4 [CFE] Use package config v2
Change-Id: I32da9e8b2c1040db1521af4345f8e952c22bd30d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130864
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-02-12 10:07:25 +00:00
Konstantin Shcheglov 7575235e3b Test that function types use mutual subtyping for type parameter bounds.
For https://github.com/dart-lang/language/issues/807

Change-Id: Ife86fa35fda20347437391d742a4432518d7898a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135350
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-12 00:29:05 +00:00
Konstantin Shcheglov 2f7f627051 Support for --default-language-version flag in analyzer_cli.
Change-Id: I3e275c058748d0bf35746280d02ed5a83f5c8685
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135348
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-11 23:38:35 +00:00
Konstantin Shcheglov b63e3f9425 Replace AnalysisOptions.enabledExperiments with contextFeatures.
There should be just one source of FeatureSet, so that when we add
--default-language-version flag, we apply it to the FeatureSet, and
set as the default for the context.

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

Change-Id: If140768bb51db1b0f736b91ab5d624e22100405e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135347
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-11 20:16:14 +00:00
Brian Wilkerson 5340bbff98 Add context messages for cases where different types have the same name
Change-Id: I2a83f1d5a7c3a8852a6cb91b809bf79c4dbfef71
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135341
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-11 17:42:33 +00:00
Konstantin Shcheglov abf7d1fc08 Issue 40572. Pass Packages to AnalysisDriver.
Just as SourceFactory is given to AnalysisDriver, so should be Packages.
Understanding --packages and discovery in out of scope.

Bug: https://github.com/dart-lang/sdk/issues/40572
Change-Id: Id120fba0f23a4423797fa9976c4cda5ed54dad53
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135188
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-11 00:57:45 +00:00
Konstantin Shcheglov 085c4b49a4 Issue 40482. Fix for Function?.call() reporting unchecked nullable.
Bug: https://github.com/dart-lang/sdk/issues/40482
Change-Id: Ifb65cd8016dca18c634cd216759278b7518d41ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135185
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-10 23:26:55 +00:00
Konstantin Shcheglov 7be0667fc3 Issue 40398. Fix for checking type arguments in legacy libraries.
Bug: https://github.com/dart-lang/sdk/issues/40398
Change-Id: I4f0086fdf3c0efc5d43976ee9b99566b1eb43f35
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135202
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-10 22:56:15 +00:00
Konstantin Shcheglov 2edd3d5e4a Issue 40414. Test for invalid override checked even via legacy library.
Bug: https://github.com/dart-lang/sdk/issues/40414
Change-Id: I73ac38823d05c71985ea0f55f92ea390d9273a45
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135187
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-10 22:56:06 +00:00
Konstantin Shcheglov 85c197a848 Optional parameters of abstract methods may omit default values.
https://github.com/dart-lang/co19/issues/516#issuecomment-582039754

Change-Id: I651fd77f03b96b69f5f43bdb1933dd6ad00e2a46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135160
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-10 21:40:45 +00:00
Konstantin Shcheglov 0bd76c7d37 Issue 40546. Ensure that getSourceKind() works for changed files.
R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/40546
Change-Id: I68b3e0610960bfbad05d6d132d534cea9cfe5925
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-10 18:14:44 +00:00
Konstantin Shcheglov 4aa097b082 Issue 40394. Report warning for nullable enum in switch.
Bug: https://github.com/dart-lang/sdk/issues/40394
Change-Id: I9e8112ead97d5ecaccc167b2378112cefa391bcc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134874
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-08 19:59:07 +00:00
Konstantin Shcheglov eeaa9085ae Issue 40394. Updates to switch / case validation.
No changes to enum validation yet.

Bug: https://github.com/dart-lang/sdk/issues/40394
Change-Id: I2cca426b5b59d18a6244622f84884a3747a07190
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134888
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-07 22:38:40 +00:00
pq 15198ebad8 add pubspec caching to PubWorkspacePackages
See: https://github.com/dart-lang/linter/issues/29

Change-Id: Ifcd4ad359a43c9183ab42ed6bb0ebb3586c73afd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134861
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-07 21:56:26 +00:00
Konstantin Shcheglov 6f6797e745 Add NullSafetyUnderstandingFlag, update APIs to use it.
DartType.== implementations ignore nullability if the flag is not true.

TypeSystem APIs eliminate nullability from types before doing anything.

Internally analyzer continues using actual nullability for types.

Package nnbd_migration opted into NullSafetyUnderstandingFlag.

Bug: https://github.com/dart-lang/sdk/issues/40500
Change-Id: Ifeea28c01adf1dc59ed2da675b4a62c6334d529a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134865
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-07 21:38:06 +00:00
Konstantin Shcheglov 1f47e5b23d Revert "Analyze SDK with non-nullable experiment enabled, update MockSdk."
This reverts commit 545b80ef0e.

Reason for revert: this is a breaking change for MockSdk users, actually much more serious issue for un-forking SDK. https://github.com/dart-lang/sdk/issues/40500

Original change's description:
> Analyze SDK with non-nullable experiment enabled, update MockSdk.
> 
> Change-Id: I80264a6533045c33ed794a5938f6719f3b5a6d0b
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134401
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>

TBR=paulberry@google.com,scheglov@google.com,brianwilkerson@google.com

Change-Id: If8c3d8322986b01012fa76f9c928f35309c00e3e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134802
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-06 22:55:29 +00:00
Konstantin Shcheglov 6a2afca361 Convert SimpleIdentifier in setter to legacy.
Change-Id: Ia7728995353666445c7e9ebb9c1c215a34bc270d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134800
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-06 22:52:38 +00:00
Mike Fairhurst a98f4acd1a [analyzer] Fix #32913, no error for inferring a non-const type argument in a generic function used in a const location
Bug: 32913
Change-Id: I7e5ef10fdd9befdc7d8a19b2c5c5b91639c82666
Fixed: 33439
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/91105
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2020-02-06 20:33:02 +00:00
Mike Fairhurst a62b9c8d23 [analyzer] Add a recursive type visitor that can be stopped midtraverse.
Change-Id: I9c0b7b8866a44446e7b8044cba59aacd7ee93c72
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134482
Reviewed-by: Paul Berry <paulberry@google.com>
2020-02-06 20:33:02 +00:00
Konstantin Shcheglov c33935faa8 Extract SwitchStatement errors into separate files.
R=brianwilkerson@google.com

Change-Id: I0832e2c4ebc9c2597bba6dc13bb9dcf376888b88
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134764
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-06 19:49:42 +00:00
Konstantin Shcheglov 545b80ef0e Analyze SDK with non-nullable experiment enabled, update MockSdk.
Change-Id: I80264a6533045c33ed794a5938f6719f3b5a6d0b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134401
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-06 18:04:02 +00:00
Konstantin Shcheglov fe0735f959 Fix for constant dependencies when opt-out depends on opt-in.
R=brianwilkerson@google.com

Change-Id: I31bb8073fa1059e2edf8903b5fa604afb0f19f50
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134571
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-06 00:55:20 +00:00
Konstantin Shcheglov 05dcf371e7 Remove 'withNullability' from TypeImpl.toString()
Bug: https://github.com/dart-lang/sdk/issues/40460
Change-Id: Icd967df0252a9fd7ff9941ca7158b7df0190c961
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134384
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-04 21:19:06 +00:00
Konstantin Shcheglov a1d232a9b4 Issue 40392. Report SWITCH_CASE_COMPLETES_NORMALLY when switch/case completes normally.
Bug: https://github.com/dart-lang/sdk/issues/40392
Change-Id: I15c80d0667be1c783cb21870b9f92ee98a4f3042
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134245
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-04 17:46:48 +00:00
Konstantin Shcheglov 8378042f19 Extract test for CASE_EXPRESSION_TYPE_IMPLEMENTS_EQUALS.
Change-Id: I91641cee4320d4d21d121fc0d9494c090cbe2a76
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134246
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-04 17:05:38 +00:00
Konstantin Shcheglov 49e2ed34a2 Issue 40304. Use runtime type equality for checking overrides.
Bug: https://github.com/dart-lang/sdk/issues/40304
Bug: https://github.com/dart-lang/sdk/issues/40279
Change-Id: I55a27335cfa923297ee580de6e79df15de004879
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134221
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-02-03 22:52:46 +00:00
Konstantin Shcheglov 1fff623c19 Use TypeSystemImpl instead of TypeProvider in DartObjectImpl.
We need to be able to use TypeSystemImpl in DartObjectImpl.== to
call runtimeTypesEqual() instead of DartType.==

Change-Id: I2021a0d86a7c304072fd8fee2d1a7e6e979100a8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134146
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-03 20:38:46 +00:00
Paul Berry 763ce812ea Migration: properly handle type parameter types with nullable bounds.
This required adding logic to the `TypeParameterType` case of the
`toFinalType` function, so that we look up the decorated type of the
type parameter bound, and convert it to a final type as well.
(Previously we were just using the bound stored in the element model,
which was in many cases the bounds from prior to migration, and hence
it was a `*` type so it behaved as though it was non-nullable).

This required moving `toFinalType` into the `Variables` class so that
it could look up the decorated types of type parameter bounds.

Fixes #40355.

Change-Id: I53c2636aef6954500589e924b9755a297c2b30f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134061
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
2020-02-03 19:59:38 +00:00
Janice Collins aa916d6367 Add path parsing to pub support.
Change-Id: Ib4edee4d247bc9bb525d63bc527cecebe4e4a5ee
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134100
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Janice Collins <jcollins@google.com>
2020-01-31 22:17:32 +00:00
Konstantin Shcheglov bb6cab29b9 Check for correct overrides as the specification requires.
Specifically, we replace types of covariant parameters with `Object?`
or `Object` and use subtype check. Then we check types of covariant
formal parameters and corresponding overridden formal parameters.

It looks that NNBD related changes that are coming now require
such more precise following to the specification rules.

Change-Id: Idfa4e3a118050a1be79acce8c708b3aac07b5051
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134043
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-31 19:35:23 +00:00
Konstantin Shcheglov d550879d9d Implement runtime type equality.
Change-Id: I603b5147d7d7e6d8e7267be9c861324b575f259d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134041
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2020-01-30 22:59:43 +00:00
Sam Rawlins 637a801e64 Use 'enum' and 'mixin' with undefined getters, methods, operators, setters
Fixes #40177

Change-Id: I0b416a4e77d3d1c5afc1712301c5cf1ea4cfc8d9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133043
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2020-01-30 17:01:58 +00:00
Konstantin Shcheglov e766a6f145 Use Never and Object? in NNBD bottom / top.
Bug: https://github.com/dart-lang/sdk/issues/40283
Change-Id: I2ebfc650b3d454bcd80f8f8ae33ed5311a23dd24
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133880
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-30 04:05:50 +00:00