Konstantin Shcheglov
c44fa48f8f
Extract and rewrite MethodInvocation resolution.
...
This is a copy of https://dart-review.googlesource.com/c/sdk/+/78182 ,
but now in the analyzer branch.
R=brianwilkerson@google.com , paulberry@google.com
Change-Id: I75d17a351ee7a33c164d560009cf3ffd088d956a
Reviewed-on: https://dart-review.googlesource.com/c/80942
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-22 03:36:30 +00:00
Konstantin Shcheglov
163b356b79
Remove CheckedModeCompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION.
...
There is no destinction anymore.
So, we don't need a cycle, and can report just one error kind.
R=brianwilkerson@google.com
Change-Id: I54680ca5b5df275b2d68804a0ad7caeda3ed92aa
Reviewed-on: https://dart-review.googlesource.com/c/80982
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-21 19:49:44 +00:00
danrubel
9f7ad8d082
Fix recovery when parsing complex type variables
...
This fixes parser recovery when the user has inserted a word before
a method declaration with a complex type arguments, such as
foo Future<List<int>> bar() {}
Fix https://github.com/dart-lang/sdk/issues/34850
Change-Id: Ic6d1767668bd34d75c6ab5f9973e5762bdd8f160
Reviewed-on: https://dart-review.googlesource.com/c/80780
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2018-10-19 18:56:09 +00:00
Sam Rawlins
2bb4284c63
Add a few more tests and comments for GnWorkspace
...
Change-Id: I3d8cc76e166c1968049c35d383599f6bebd0d1bf
Reviewed-on: https://dart-review.googlesource.com/c/80521
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2018-10-18 00:26:01 +00:00
Sam Rawlins
5b574415f8
Fix GnWorkspace root
...
Bug: none
Change-Id: I61c11773313bab13afcab26bd2d3164a94da3e46
Reviewed-on: https://dart-review.googlesource.com/c/80260
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2018-10-16 23:09:01 +00:00
Konstantin Shcheglov
20f4349951
Fix for reporting INVALID_USE_OF_PROTECTED_MEMBER in documentation comments.
...
R=brianwilkerson@google.com , devoncarew@google.com
Bug: https://github.com/dart-lang/sdk/issues/34816
Change-Id: Ifb46351f83405e862fb5f28b669fa151ab0e2f8f
Reviewed-on: https://dart-review.googlesource.com/c/80267
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Devon Carew <devoncarew@google.com >
2018-10-16 17:29:37 +00:00
Brian Wilkerson
469e1e2e64
Remove unnecessary library directives
...
Change-Id: I7a157080e4d7fd80d64489a13de4e996b5870930
Reviewed-on: https://dart-review.googlesource.com/c/79474
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2018-10-13 00:44:04 +00:00
Konstantin Shcheglov
977f5c2c21
Switch KytheDartVisitor to InheritanceManager2.
...
Also deprecate lookupOverrides(), which is the last public method
that was left. So, now production code in Analyzer and Analysis Server
does not use InheritanceManager. It is used in lints and dartdoc
though. I'd like to make a slightly bigger change for lints than just
to replace creating of one with another.
R=brianwilkerson@google.com
Change-Id: I2f1ff42360706e13436e7be8683392027aefbb8c
Reviewed-on: https://dart-review.googlesource.com/c/79470
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-12 21:11:44 +00:00
danrubel
bc2ea566f1
Auto generate more analyzer error codes
...
Change-Id: I7881274ef6aae22d29d35fb6be084be873f929b8
Reviewed-on: https://dart-review.googlesource.com/c/79602
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2018-10-12 20:58:34 +00:00
Brian Wilkerson
0e001641a9
Re-write invalid ASTs and update fix to reflect new AST structure for invalid type arguments on named constructors
...
Change-Id: I66e5f6b6022356eb31a327d1c989950c360492f7
Reviewed-on: https://dart-review.googlesource.com/c/79463
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2018-10-12 16:38:51 +00:00
Dan Rubel
e4c3fa0a9c
Improve recovery when parsing named constructor invocation with invalid type arguments
...
The parser now generates a ConstructorWithTypeArguments error and a new
handleInvalidTypeArguments event after a begin/endTypeArguments event pair
when those type arguments are in a syntatically invalid location.
For example: `new C.n<int>();` in
```
class C<T> { T f; C.n() {} }
main() { var x = new C.n<int>(); }
Most listeners handle this event by dropping the invalid type arguments,
but AstBuilder now preserves those invalid type arguments in the AST
to support better code quick-fixes/quick-assists/refactoring.
Change-Id: I5b22bd4903cd9ee3645936b9a108598b603cf9ca
Reviewed-on: https://dart-review.googlesource.com/c/79300
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2018-10-11 19:57:22 +00:00
Konstantin Shcheglov
fab5d0a50d
In InheritanceManager remove unused, and deprecate used (in lints) methods.
...
Also, remove it from ErrorVerifier.
R=brianwilkerson@google.com
Change-Id: I35f6f7fd2f8c6680ec470e7bf7da4780a3c69df3
Reviewed-on: https://dart-review.googlesource.com/c/79360
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-11 17:57:35 +00:00
Konstantin Shcheglov
efcca1132b
Switch ErrorVerifier and OverrideVerifier to InheritanceManager2.
...
R=brianwilkerson@google.com
Change-Id: I2f1f03684611fcd6a183ea494d3b3d71a67fb170
Reviewed-on: https://dart-review.googlesource.com/c/79181
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-11 14:48:18 +00:00
Konstantin Shcheglov
e221a6288b
Move reporting MISMATCHED_GETTER_AND_SETTER_TYPES for classes to using new interfaces.
...
R=brianwilkerson@google.com
Change-Id: I07e8af54ffebd446a1492fab667e4148468cc2f8
Reviewed-on: https://dart-review.googlesource.com/c/78925
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-10 16:25:49 +00:00
Paul Berry
b3af151325
Rework detection of uninstantiated bound errors.
...
We now determine whether a type is simply bounded in the summary
linker, so that we can take advantage of the linker's circularity
detection logic.
Fixes #34635 .
Fixes #34636 .
Change-Id: I6c5040dbaeb79957d8a84e3f76e6a51834b57f05
Reviewed-on: https://dart-review.googlesource.com/c/78867
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2018-10-09 22:07:02 +00:00
Paul Berry
4400df4190
Convert strong_mode_test.dart to triple-slash comment style.
...
Change-Id: Iba3ca6bc14269b89e55d36b662f0fa46b6710c5b
Reviewed-on: https://dart-review.googlesource.com/c/78800
Auto-Submit: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-09 17:12:44 +00:00
Paul Berry
219dc1be87
Rework the class hierarchy of StrongModeStaticTypeAnalyzer2Test.
...
The tests are moved into a mixin,
StrongModeStaticTypeAnalyzer2TestCases, which both
StrongModeStaticTypeAnalyzer2Test and
StrongModeStaticTypeAnalyzer2Test_Driver apply separately. This
allows tests to be marked as failing in
StrongModeStaticTypeAnalyzer2Test without affecting
StrongModeStaticTypeAnalyzer2Test_Driver.
Change-Id: Iabd641d5ecf03fd0481baf053e689d68a0e0e7a1
Reviewed-on: https://dart-review.googlesource.com/c/78705
Commit-Queue: Paul Berry <paulberry@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Auto-Submit: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2018-10-09 00:45:10 +00:00
Mike Fairhurst
7f531b5112
Analyzer: Fix missing errors during (a)sync(*) yield of void.
...
Change-Id: Iff1d87862b2f684c0ce36b0f07620f62f2e49a85
Reviewed-on: https://dart-review.googlesource.com/c/78323
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-08 22:27:59 +00:00
Konstantin Shcheglov
ca8809fcfa
Don't use variableElement.computeConstantValue() in ConstantVisitor.
...
...when we are using Analysis Driver.
This method causes switching to the task-model based way of computing
constants. And so filling SdkAnalysisContext with data. And because
SDK instances are long-lived, we were keeping this data as well.
R=brianwilkerson@google.com
Change-Id: Ie6f4a4ce8a05238b9640aef961af394d64373573
Reviewed-on: https://dart-review.googlesource.com/c/78420
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-08 16:34:04 +00:00
Mike Fairhurst
198b05279b
Fix #33599 circular typedef stack overflow.
...
Fix #33599 stack overflow for recursive function type parameters
Bug: 33599
Change-Id: I31a14e9f941bfd6bb7c2dba09f671d887e535b2a
Reviewed-on: https://dart-review.googlesource.com/c/76040
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Mike Fairhurst <mfairhurst@google.com >
2018-10-05 15:59:42 +00:00
Mike Fairhurst
765b8e2d66
More void cleanup
...
Change-Id: I21e23ab6dec654242d049935e2665389e61dd3d7
Reviewed-on: https://dart-review.googlesource.com/c/78189
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Auto-Submit: Mike Fairhurst <mfairhurst@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2018-10-05 15:34:31 +00:00
Peter von der Ahé
2a6b566ca2
Move byte store to package:analyzer
...
Change-Id: I1fc41cc0b2e2848565a5411d0512a4ca086ab659
Reviewed-on: https://dart-review.googlesource.com/c/77761
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
Auto-Submit: Peter von der Ahé <ahe@google.com >
2018-10-04 09:15:54 +00:00
Peter von der Ahé
45cb0815bc
Move PerformanceLogger to package:analyzer
...
Change-Id: I89a60ae9ab639c7907a92976e1eb8007d0f4ee9b
Reviewed-on: https://dart-review.googlesource.com/c/77760
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
Auto-Submit: Peter von der Ahé <ahe@google.com >
2018-10-04 08:44:43 +00:00
Konstantin Shcheglov
3daa63bc4c
Revert OverrideVerifier back to the old InheritanceManager.
...
This partially reverts https://dart-review.googlesource.com/c/sdk/+/77521
There is still one pre-existing issue, will be fixed later.
R=brianwilkerson@google.com
Change-Id: Ide556a65ef2e46f1621ac60b1b7a32207d804b31
Reviewed-on: https://dart-review.googlesource.com/c/77920
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-03 19:23:05 +00:00
danrubel
ab3ef0914c
Allow "yield" as label
...
Fix https://github.com/dart-lang/sdk/issues/33672
Change-Id: I1d070fd2fd3901d8159aa760b094398efee8643c
Reviewed-on: https://dart-review.googlesource.com/77501
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2018-10-03 18:32:07 +00:00
danrubel
f529ab10f0
Allow "operator" as a static method name
...
Fix https://github.com/dart-lang/sdk/issues/33673
Change-Id: Ia2ec01a3b9cf701f7f85f4891d2fb45f1f01e444
Reviewed-on: https://dart-review.googlesource.com/77500
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-03 18:32:07 +00:00
Konstantin Shcheglov
b628a62aa8
Remove ConstantValueComputer and DirectedGraph.
...
We use different graph implementation in Analyzer, CFE has its own.
And ConstantValueComputer is not used in Analyzer or anywhere internally.
R=brianwilkerson@google.com
Change-Id: I1abaca5205fa0af7c50675d2935b0d6f21373b31
Reviewed-on: https://dart-review.googlesource.com/c/77672
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-03 01:51:03 +00:00
Konstantin Shcheglov
80db08809c
Pass InheritanceManager2 into resolver, use for BinaryExpression.
...
Ideally I think we should not use Expression.staticParameterElement to
get back to the corresponding parameter of the invoked FunctionType,
and do this check directly during resolution.
R=brianwilkerson@google.com
Change-Id: I6dbb5bf63f7eaad7f19b31129319e32dd4455acc
Reviewed-on: https://dart-review.googlesource.com/c/77641
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-02 21:48:36 +00:00
Konstantin Shcheglov
4df3626d19
Remove support for (non)nullable types from Analyzer.
...
R=brianwilkerson@google.com
Change-Id: Ia26c203ed4fa238d1a546fe67e009fa542ed8f82
Reviewed-on: https://dart-review.googlesource.com/77666
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-02 20:05:15 +00:00
Brian Wilkerson
d2c5a24fd9
Recognize mixins as subtypes of their superclass constraints in hint generation (issue 34633)
...
Change-Id: I84b86e998ec353c13b18a460f2a7ca8cb0802204
Reviewed-on: https://dart-review.googlesource.com/77665
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2018-10-02 19:20:35 +00:00
Brian Wilkerson
a074a87b25
Convert more analyzer tests to use ResourceProviderMixin
...
Change-Id: I0b6d54501a7f52f0b8ae2faa72992cd22dfc6c58
Reviewed-on: https://dart-review.googlesource.com/77600
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2018-10-02 16:57:43 +00:00
Konstantin Shcheglov
7ca2f56112
Stop using and deprecate InheritanceManager.getMembersInheritedFromInterfaces().
...
R=brianwilkerson@google.com
Change-Id: Ia24248cc0d80960d2a4aa40e0da519804c68abbc
Reviewed-on: https://dart-review.googlesource.com/77483
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-01 22:40:07 +00:00
Konstantin Shcheglov
f5135c6e86
Don't recurse into arguments of constant InstanceCreationExpression while verifying.
...
This reduces time required to verify constant errors on my Flutter
analysis benchmark from 1770 ms to 540 ms. Total analysis time is also
down the similar value.
R=brianwilkerson@google.com
Change-Id: Ia307b33ddd36f8f7e88c0f909422b980d3c67dda
Reviewed-on: https://dart-review.googlesource.com/77481
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-01 20:45:10 +00:00
Paul Berry
32af1be0a4
Check type arguments against bounds when instantiating a typedef.
...
Change-Id: I38f390abd2c409694ad15cbc35654ba5dab9b9ce
Reviewed-on: https://dart-review.googlesource.com/77015
Commit-Queue: Paul Berry <paulberry@google.com >
Auto-Submit: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-01 20:43:19 +00:00
Konstantin Shcheglov
64f02226b3
Stop using InheritanceManager.getMembersInheritedFromClasses().
...
R=brianwilkerson@google.com
Change-Id: I2f719f6c3c5383ac76608b9fd5b7251f3af0d6bb
Reviewed-on: https://dart-review.googlesource.com/77463
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-01 19:02:14 +00:00
Konstantin Shcheglov
9083b116f8
InheritanceManager does not produce errors, don't ask it.
...
R=brianwilkerson@google.com
Change-Id: I0b26de6d60b02574b5a13803491833d4aaf43a1d
Reviewed-on: https://dart-review.googlesource.com/77269
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-01 15:34:55 +00:00
Konstantin Shcheglov
85fb1f3de1
Fix Analyzer tests on Windows bot.
...
R=brianwilkerson@google.com
Change-Id: Ia43513d068a7676e8760efb87631cccd124b3c69
Reviewed-on: https://dart-review.googlesource.com/77265
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-10-01 01:02:46 +00:00
Konstantin Shcheglov
1bceca91b0
Remove the 'name' constructor parameter from CompilationUnitElementImpl()
...
It costed us about 1.2% of total analysis time.
The whole information about a unit is available in its Source.
R=brianwilkerson@google.com
Change-Id: Iffa253d1eae1a466c10766f66c6c677e19be124a
Reviewed-on: https://dart-review.googlesource.com/77220
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-09-28 21:53:24 +00:00
Konstantin Shcheglov
749cf15dcf
Fix tests failing on Windows.
...
R=brianwilkerson@google.com
Change-Id: I72f01b89e03a3269cab9c8a33cbfb45c0bd13d72
Reviewed-on: https://dart-review.googlesource.com/77223
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-09-28 20:20:36 +00:00
danrubel
a73e0a840a
Fix parsing partial named constructor
...
Fix https://github.com/dart-lang/sdk/issues/34614
Change-Id: I22d96780a32bc58f83e81c5c9d01c6c4992be581
Reviewed-on: https://dart-review.googlesource.com/77200
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2018-09-28 19:53:10 +00:00
Konstantin Shcheglov
9c585bf5df
Document that ResourceProvider requires absolute, normalized paths, and enforce this.
...
This allows us to avoid performing normalization, and work with paths
as is. So, this speeds up SourceFactoryImpl.restoreUri() from 7.5% to 3.7%
R=brianwilkerson@google.com
Change-Id: I085f3db40af6543fbb524a82fad48aa051e87937
Reviewed-on: https://dart-review.googlesource.com/77017
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-09-28 17:18:49 +00:00
Konstantin Shcheglov
06744c68b2
Pull reporting for unimplemented inherited members, and declared abstract members from ErrorVerifier.
...
When we need to check that the concrete implementation is valid for
the class interface, we already know whether we have the required
concrete implementation, or if it is left abstract. So, we can report
corresponding errors without additional computation.
R=brianwilkerson@google.com
Change-Id: Ib6d19bab024572c26853c16f22adb8a545a2e304
Reviewed-on: https://dart-review.googlesource.com/77006
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-09-27 21:01:12 +00:00
Paul Berry
b1a54154f8
Check that implicit type arguments satisfy bounds.
...
This required adding an implementation of super-bounded types to the
analyzer.
We really could use some more tests to verify that we disallow
super-bounded types in all the appropriate locations, but allow it in
other cases (it seems that there are no language_2 tests to verify
this). To avoid churn, I'll wait until I have confirmation that my
reasoning is correct in #34583 before submitting test cases.
Fixes #34532 .
Fixes #34560 .
Change-Id: I3c5def60bcac0d31b56bead31cb1aab445f18e96
Reviewed-on: https://dart-review.googlesource.com/76280
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-09-26 01:12:28 +00:00
Brian Wilkerson
2c82a400e8
Signal a static error when invoking a non-function (issue 34320)
...
Change-Id: Ida2998b44f52185fcd1d3be545004edff917f5ad
Reviewed-on: https://dart-review.googlesource.com/76560
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2018-09-25 20:52:35 +00:00
Konstantin Shcheglov
9185294e7a
Reland: Implement inheritance/override checks from the spec.
...
Relands https://dart-review.googlesource.com/c/sdk/+/76061
Was reverted in https://dart-review.googlesource.com/c/sdk/+/76301
The difference with the original CL is that we don't look into
superclass and mixins of mixed-in for concrete members. This reduces
the number of errors in Flutter codebase to 1.
R=brianwilkerson@google.com
Bug: https://github.com/dart-lang/sdk/issues/34392
Change-Id: I86256b598d116439194cbaf4d09b4f72013d6563
Reviewed-on: https://dart-review.googlesource.com/76340
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-09-25 18:51:04 +00:00
Paul Berry
c23a9815ec
Stop setting element model supertypes in TypeResolverVisitor when using new driver.
...
It's not necessary (because these types are already set correctly by
the summary linker) and it causes incorrect behavior (because due to
issue #34579 the AST nodes don't always contain correct types).
This reduces the severity of #34579 by ensuring that the incorrect
types stay in the AST nodes and don't leak into the element model.
I'll leave that issue open to remind us to make a more complete fix.
Change-Id: Ibf39370d501b5e19c9dc75713f2c39ca732870d6
Reviewed-on: https://dart-review.googlesource.com/76441
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2018-09-25 17:46:50 +00:00
Zach Anderson
95d37b0921
Revert "Implement inheritance/override checks from the spec."
...
This reverts commit 836a1d7a88 .
Revert "Don't use ClassElementImpl for now in override checking."
This reverts commit 58e44c1400 .
Revert "large_class_declaration_test is slow now."
This reverts commit 56f6c52d58 .
Revert "Add regression test for issue 34392."
This reverts commit ef7d144bc7 .
Revert "Mixin declarations don't have supertype, fix isMoreSpecificThan()."
This reverts commit 95b8a19a20 .
Change-Id: Icda9cf9091ef35acc8fd61ac5dc135b3717eba0a
Reviewed-on: https://dart-review.googlesource.com/76301
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2018-09-24 21:27:34 +00:00
Konstantin Shcheglov
836a1d7a88
Implement inheritance/override checks from the spec.
...
This CL starts moving checks from strong-mode specific checker,
and old InheritanceManager into an implementation that is based
on the current spec, and avoids old baggage. It also fixes the issue
we were asked to fix for Dart 2.1.
Bug: https://github.com/dart-lang/sdk/issues/34392
Change-Id: Id5a23c5db7704b2b530bb894ae92628a08eaa70f
Reviewed-on: https://dart-review.googlesource.com/76061
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-09-24 16:28:50 +00:00
Paul Berry
6a04b3079f
Fix test_mixinInference_noMatchingClass_namedMixinApplication_new_syntax
...
It turns out that with the new mixin syntax, we always check for error
MIXIN_APPLICATION_NOT_IMPLEMENTED_INTERFACE first, and if it is found,
we don't even bother checking for MIXIN_INFERENCE_NO_MATCHING_CLASS
(which I think is reasonable). So the expectations on this test need
to be changed.
Change-Id: I2a33ce60a928af63f4fc83b4e3a8309a2660b441
Reviewed-on: https://dart-review.googlesource.com/75990
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2018-09-21 20:52:49 +00:00
Paul Berry
e22dd19b13
Create a base class for compile-time error code test cases.
...
This avoids the need to override tests in
CompileTimeErrorCodeTest_Driver to indicate that they pass.
Change-Id: Ieedb75c5d23edb3214b8d2cdb00a138201e3e3a7
Reviewed-on: https://dart-review.googlesource.com/75985
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2018-09-21 19:48:21 +00:00