Commit Graph

2540 Commits

Author SHA1 Message Date
Mike Fairhurst a88b10ad5a Fix #34906 Handle bottom type via Null correctly
Bug: 34906
Change-Id: I6105de38a0ed697f53ba1158f12e0a03a809728e
Reviewed-on: https://dart-review.googlesource.com/c/81321
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2018-10-24 20:50:15 +00:00
Paul Berry 2e2c360371 Merge commit '0b15595913ff89d8486e6677af0254dd6feab350' into analyzer 2018-10-24 06:09:47 -07:00
Paul Berry 0009ca7b1b In _matchInterfaceSubtypeOf, account for mixins having null superclass.
Fixes #34907.

Change-Id: I1ba56bf57d6ca5a7a69f262e12df801dc2cc4a4a
Reviewed-on: https://dart-review.googlesource.com/c/81322
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-10-24 01:06:25 +00:00
Konstantin Shcheglov f5758b74c8 Report missing '[]' and '[]=' operators separately.
R=brianwilkerson@google.com

Change-Id: I729d76c3373ab0eba3e191a5a79f6d2a34a97e23
Reviewed-on: https://dart-review.googlesource.com/c/81222
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-10-23 15:46:51 +00:00
Paul Berry 5665636983 Merge commit '7fd78ed5b606e64d30ec201de9adce6fdf8856ba' into analyzer 2018-10-22 13:07:24 -07:00
Brian Wilkerson a342cecffd Disable support for the old super mixins
Change-Id: I8f8074b67ea43249fcc10deddd2325938996d529
Reviewed-on: https://dart-review.googlesource.com/c/79469
Reviewed-by: Devon Carew <devoncarew@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-10-22 16:02:01 +00:00
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