pq
a00dc1504e
remove TypeSystemImpl.strict{Casts|Inference}
...
Fixes: https://github.com/dart-lang/sdk/issues/53873
Change-Id: I8cb982c8f6549a604c6815cfebbeede27f56b030
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/342102
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Phil Quitslund <pquitslund@google.com >
Reviewed-by: Samuel Rawlins <srawlins@google.com >
2023-12-15 22:05:47 +00:00
pq
40e5e46a54
migrate strict{Casts,Inference} from typeSystem
...
Another angle on removing tracking of `strictCasts` and `strictInference` from the type system, this time threading these configuration values individually to the functions that need them. (In contrast to the solution in https://dart-review.googlesource.com/c/sdk/+/341326 ).
See: https://github.com/dart-lang/sdk/issues/53873 .
Change-Id: I63d73fd81401ac03121831af5e8d4ca43200bb7a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/341336
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Kallen Tu <kallentu@google.com >
Commit-Queue: Phil Quitslund <pquitslund@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2023-12-15 19:45:09 +00:00
Sam Rawlins
73ab31b98a
analyzer: Move the Source class to be public API.
...
Deprecate accessing LineInfo, Source, or SourceRange via the
old library (pkg/analyzer/lib/src/generated/source.dart).
Migrate all SDK code to the new library.
Fixes https://github.com/dart-lang/sdk/issues/46420
Change-Id: Ic7c98a5820415c92a457f9fa2756351b05520cd1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/335382
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2023-11-14 17:10:37 +00:00
Sam Rawlins
7ee87f8601
[analyzer] Remove all support for strong-mode
...
This looks pretty beefy; it is more-or-less 3 parts:
* Removing the `implicit-casts: false`, `implicit-dynamic: false`
modes:
* Remove `AnalysisOptionsFileConfig.implicitCasts|implicitDynamic`
* Remove `AnalysisOptionsImpl.implicitCasts|implicitDynamic`
* Remove `TypeSystemImpl.implicitCasts`
* Remove all behavioral tests of the modes
* Remove Analysis Options-parsing code that handled `strong-mode`
* Remove ability to fix deprecated modes (introduced before Dart 3).
* Move some non-generated AnalysisOptionsHintCodes and
AnalysisOptionsWarningCodes to be generated. As
`AnalysisOptionsHintCode.STRONG_MODE_SETTING_DEPRECATED` was the
last `AnalysisOptionsHintCode` code, there were problems with the
code-generator, unless I moved these non-generated codes.
* `DEPRECATED_LINT_HINT`, `DEPRECATED_LINT_HINT_WITH_REPLACEMENT`,
`DUPLICATE_RULE_HINT`, `INCOMPATIBLE_LINT`, `UNDEFINED_LINT`.
* Those codes are then added to error_fix_status.yaml.
Change-Id: Ic165b60ca85f08f92886433eac5f5da5b7dd5021
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/316483
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2023-08-17 17:07:37 +00:00
Sam Rawlins
94f20d7731
Revert "Remove all support for all strong-mode analysis options"
...
This reverts ea120b5d44
Change-Id: I97a1bf6ced06bf8bcab50a2fdb41732f13182a84
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/276026
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2022-12-16 00:47:49 +00:00
Sam Rawlins
ea120b5d44
Remove all support for all 'strong-mode' analysis options
...
Fixes https://github.com/dart-lang/sdk/issues/50679
Change-Id: I3572faf51276f5c7551d35b7725c799567189413
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274921
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2022-12-13 21:32:24 +00:00
Konstantin Shcheglov
139385c615
Breaking changes for analyzer version 4.0.0
...
Change-Id: I26961f29f9171e94db2f5c95f1f8af5fd01bb9b9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/233681
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2022-04-07 06:52:27 +00:00
Konstantin Shcheglov
ab55396c25
Remove FileBasedSource, deprecate source_io.
...
Change-Id: I42c79a1c46711a9427d8716df91cd6980f0c57c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/220842
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-11-19 19:07:37 +00:00
Konstantin Shcheglov
7e6b3d83b8
Mark all Source.encoding implementations deprecated.
...
Change-Id: If12b9af54def3754a701477241d8364c283921ec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/220823
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-11-19 16:03:27 +00:00
Sam Rawlins
7fabfa7efd
Add strict-casts language option for analysis_options
...
The implementation is extremely simple: wire strict-casts right
alongside implicit-casts in AnalysisOptionsImpl, AnalysisSession, and
TypeSystem. The flag is separate from implicit-casts because it is
_slightly_ stricter. The implicit-casts flag has some gaps in coverage
(like for-each iterables, and yield-each expressions). Filling these
gaps in implicit-casts would be expensive (requiring cleanup), and the
short-term goal is to deprecate the flag, so it is not important to
tidy it up.
A few extra bits are then added which are specific to strict-casts,
which improve the coverage.
Most of this change is the tests: tests are added for (theoretically)
each error code which could be reported as a result of strict-casts. The
test model using WithStrictCasts follows the model of WithStrictCasts,
which couples two tests into one assertion, ensuring the state of each
example code before and after strict-casts.
Bug: https://github.com/dart-lang/sdk/issues/36267
Change-Id: I52b2fc831fac3a5467ec7164df8fc1a1109e42ef
https://github.com/dart-lang/sdk/issues/33749
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219847
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-11-10 18:37:35 +00:00
Konstantin Shcheglov
3409b2a0e8
Remove 'featureSet' from TestAnalysisContext.
...
Change-Id: Ide3eb73562aa70b0daf82d12f66f2001b7a3c735
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213533
Reviewed-by: Samuel Rawlins <srawlins@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-09-15 23:20:05 +00:00
Konstantin Shcheglov
dea3861e5f
Stop using FeatureSet.forTesting() in analyzer/.
...
Change-Id: Ic4de7d6bcb3397aaa86ff6d82cce1531afbffa50
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213118
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Samuel Rawlins <srawlins@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-09-11 18:46:27 +00:00
Konstantin Shcheglov
9f986d2501
Migrate package:analyzer to null safety.
...
Change-Id: Iffe4370431587e46a141ddc72a86ceec29c163b2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176486
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Samuel Rawlins <srawlins@google.com >
2021-02-01 18:56:04 +00:00
Konstantin Shcheglov
a51f1747e0
Prepare to publish analyzer 0.40.0 and _fe_analyzer_shared 8.0.0.
...
Change-Id: I126207dcc47885565a3a6d7002ff15ad3cc493c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122483
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-08-18 15:12:10 +00:00
Konstantin Shcheglov
69aba23371
Move TypeSystemImpl to src/dart/element/type_system.dart
...
R=brianwilkerson@google.com
Change-Id: I0d9acad041c1038f6f2be6c09855488287ba5e97
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153320
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-05 16:44:59 +00:00
Konstantin Shcheglov
9cfdc02e58
Stop depending on exports from generated/resolver.dart
...
We cannot remove them completely just yet, there are users in google3.
But this CL will allow experimenting internally to track these users
and update them similarly.
R=brianwilkerson@google.com , devoncarew@google.com
Change-Id: Ic588b2873f9d5202783c8991f58e86bab28bd47e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153240
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-03 15:55:41 +00:00
Parker Lougheed
66e2339142
[pkg/analyzer] Address prefer_final_fields lint
...
Change-Id: I737502b4bbef575ef6d9e0a16c12f43365a5e093
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148988
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-05-26 19:00:56 +00:00
Konstantin Shcheglov
92f6b03513
Update ClassHierarchy for legacy support, record errors.
...
Change-Id: I6a07a750293fa0a16c5b101142e023c8105a85aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142544
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-04-06 23:07:37 +00:00
Konstantin Shcheglov
be76b03b1a
Update MockSdkElements to create only migrated SDK.
...
Also update TestAnalysisContext to set AnalysisSessionImpl.
R=brianwilkerson@google.com
Change-Id: I21aafdc602ab049280c199b990ec9df5563fa494
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142340
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-04-03 17:08:07 +00:00
Konstantin Shcheglov
2fb3f09948
Extract TypeProvider class into lib/dart/element/type_provider.dart file
...
Change-Id: I96cdfccc33e35a9625c14a89a08826758eac0f2c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129601
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-12-26 21:31:04 +00:00
Konstantin Shcheglov
8a0d30d4e2
Fix annotate-overrides in analyzer.
...
R=brianwilkerson@google.com
Change-Id: I7a587daf9715ded6450b28ecf3892ce4181aeb37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129421
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2019-12-23 00:02:37 +00:00
Konstantin Shcheglov
273ca5858b
Deprecate AnalysisContext.typeProvider/typeSystem
...
Change-Id: I5235aa38bcde93618a10b88da9ad6a8c3e5dc29c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126141
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-11-25 22:00:47 +00:00
Konstantin Shcheglov
6294c73f3e
Deprecate 'typeSystem' parameter for InheritanceManager3.
...
Change-Id: If14eb8900b0fb5cac5e49cf865f2e6e3a0a0263d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126083
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2019-11-22 23:08:41 +00:00
Konstantin Shcheglov
f3455278ff
Use 'isNonNullableByDefault' flag in TypeProviderImpl.
...
Instead of giving it the NullabilitySuffix, for consistency with
TypeSystemImpl.
R=brianwilkerson@google.com , paulberry@google.com
Change-Id: I16d1ca32071b8a28a31e207afed604f8d4b24a2e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125982
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2019-11-21 21:43:56 +00:00
Konstantin Shcheglov
b370346d60
Add 'isNonNullableByDefault' flag to TypeSystemImpl, make all parameters named required.
...
R=brianwilkerson@google.com
Change-Id: I262f86ba964f4970ec570dc9fa4c1a802556fa63
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125924
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2019-11-21 15:37:46 +00:00
Konstantin Shcheglov
615928c514
Stop referencing non-API TypeSystem in analyzer.
...
Replace it with TypeSystem from lib/dart/element/type_system.dart,
or (internally) with TypeSystemImpl.
We keep the old TypeSystem where its is exposed from API:
- ResolveResult.typeSystem
- AnalysisSession.typeSystem
- AnalysisContext.typeSystem
We will make changes to these as a breaking change later.
Change-Id: I40ca53ea77e440457c6d0f3832ec3b6286bacdf0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125770
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2019-11-21 01:09:24 +00:00
Konstantin Shcheglov
6a9d792454
Move NullabilitySuffix to API.
...
R=brianwilkerson@google.com
Change-Id: I58547075d3472e6708e6b5ff1c6d89f768aba66a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117440
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2019-09-16 21:14:11 +00:00
Konstantin Shcheglov
c138b505be
Update TypeSystem tests to reuse AbstractTypeSystemTest.
...
R=brianwilkerson@google.com
Change-Id: Ic6e446cf124a52c8663140a995d4a58c3e4c92a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117015
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2019-09-12 23:18:07 +00:00
Konstantin Shcheglov
2c219ddb07
Replace AnalysisContextFactory with TestAnalysisContext.
...
R=brianwilkerson@google.com
Change-Id: I45ac78530061478e4835bd78355ab9f089f80879
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116047
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-09-06 22:47:36 +00:00