Commit Graph

7128 Commits

Author SHA1 Message Date
Konstantin Shcheglov 721ff350c0 Extract TYPE_ARGUMENT_NOT_MATCHING_BOUNDS tests.
R=brianwilkerson@google.com

Change-Id: Icea3c1d158d54a5d5d08e8727618f3558760615c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112752
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-12 20:12:05 +00:00
Konstantin Shcheglov 22eaf081b4 Extract tests for CONFLICTING_STATIC_AND_INSTANCE into a separate file.
R=brianwilkerson@google.com

Change-Id: I986aafa016e9c72fbe19142be7c4f0c3d17d7e9a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112750
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-12 18:57:06 +00:00
Konstantin Shcheglov d5d69883b9 More tests for DUPLICATE_DEFINITION in extensions, fixes for static fields.
R=brianwilkerson@google.com

Change-Id: Ib3657cd76d3edc06452618b7f7423163ada3a51d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112746
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-12 18:56:57 +00:00
Brian Wilkerson 22866b6a19 Add test of ambiguous exports to verify an edge case
Change-Id: I9c9e6019e314474c26165dee6a93eb35054389ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112748
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-08-12 18:33:15 +00:00
Brian Wilkerson 9eb2e8d111 Stop reporting duplicate diagnostics for other ambiguous extensions
Change-Id: Ia81c43f0ccd41aa09697b6f629fd1d5a3acd3923
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112643
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-08-12 18:04:11 +00:00
Brian Wilkerson e86ce41bcf Rename a hint code to be consistent with similar codes
Change-Id: I916c97c2e3ef34f2cf8d613b2b192dcde96c87e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112740
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-08-12 16:29:05 +00:00
Brian Wilkerson c9126333ab Rename misleading error codes
In all three cases, the if the element in question were not a const we'd
produce a different code, so "non-constant" is misleading.

Change-Id: If04fb4a91815612b47dd1357806bdfc2b047841b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112700
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-08-12 12:46:05 +00:00
Konstantin Shcheglov 357f8b7155 Extract and augment DUPLICATE_DEFINITION tests.
R=brianwilkerson@google.com

Change-Id: Idbf6db69ea51ec784b3a8bf94586ea4d535252d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112681
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-10 20:57:45 +00:00
Brian Wilkerson 1dbcf2445a Remove an unnecessary error code
Change-Id: Idb57f172535cd1233c0ffa4b4ac254c990ba75e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112606
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-08-10 14:04:05 +00:00
Konstantin Shcheglov 9713ce16b9 Report EXTENSION_CONFLICTING_STATIC_AND_INSTANCE and DUPLICATE_DEFINITION for extensions.
R=brianwilkerson@google.com

Change-Id: I237ee3edc6a2196693638c12c59d1530a1f15152
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112605
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-09 23:09:25 +00:00
Konstantin Shcheglov a244295301 Tests for AstRewriteVisitor.
R=brianwilkerson@google.com

Change-Id: I811b2722cb78572bfabdf1fe4dd2c766f128736e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112604
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-09 23:06:05 +00:00
Konstantin Shcheglov 0ee1633f40 Index references to extension methods.
R=brianwilkerson@google.com

Change-Id: I8a902ca0125f6ce42acf49f1b3f632cc8b037f52
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112620
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-09 19:52:01 +00:00
Konstantin Shcheglov 38ca3819cc Don't include extended type into syntactic scope of extensions.
R=brianwilkerson@google.com

Change-Id: I794dbdcef97652d7a7f17421f733f21d2f157de4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112493
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-09 19:36:57 +00:00
Konstantin Shcheglov b0d079a96b Set context type for extension override receiver.
Change-Id: I9c32f67af8e934ac78c580c97174547278618bfe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112320
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-09 16:35:14 +00:00
Brian Wilkerson 0c727420c3 Stop reporting undefined method when there are ambiguous extension methods
If this approach looks reasonable, then I'll use it to also stop reporting
undefined getters and setters in the same way.

Change-Id: Ia46204558fef06d092c5465774846841802de1f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112484
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-08-09 14:58:22 +00:00
Konstantin Shcheglov 559f7cd182 Fix selecting URI for import/export configuration with '== true'.
R=brianwilkerson@google.com

Change-Id: Ie18d5f76041342c6a42fd7b1f8a3be55a6e8adee
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112302
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-08 18:24:44 +00:00
Brian Wilkerson 7bde33139d Add support for extensions to unused import detection
Change-Id: I211c769765293a35f371bd2b403b38ac5dcb3b14
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112280
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2019-08-08 12:40:40 +00:00
pq 59c63139d0 set thisType for functions and void types
Change-Id: I7886d02b982bd0303074cb4c2370a9bc72258d58
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112261
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-07 22:57:14 +00:00
Brian Wilkerson 06d4cd3284 Add tests to show that combinators work correctly with extensions
Change-Id: Ibe72662d70ff776153814aec960a8409117f0196
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112266
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-08-07 22:19:15 +00:00
Konstantin Shcheglov 31bb4df3ed Move ExtensionOverride errors into resolveOverride().
R=brianwilkerson@google.com, pquitslund@google.com

Change-Id: Ia9dae5b461210c6fae40e9cf2d5282aa4fea3b3b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112262
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-07 20:28:05 +00:00
Konstantin Shcheglov 27783bd46b Combine inference and choosing the most specific extension.
R=brianwilkerson@google.com, pquitslund@google.com

Change-Id: Idb69695611f777727c127aeb629e5b62e8112648
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112220
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-07 17:29:44 +00:00
Brian Wilkerson b095be9531 Resolve methods when the type of this is defined by a type parameter bounds
Change-Id: I857c35ea23fcccb3f7932cd266e9abcfd193b86d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112100
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2019-08-06 20:51:57 +00:00
Konstantin Shcheglov 98b1e28591 Include isSynchronous/isGenerator into API signature.
They are flags on FunctionBody, but exposed from the element model.

R=brianwilkerson@google.com

Change-Id: I30e5032598535bce8106e685f26d084e305e8d34
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112060
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-06 17:49:49 +00:00
Konstantin Shcheglov e04dc4dd63 Update statuses and expectations with summary2 for some tests.
R=brianwilkerson@google.com

Change-Id: I48eeb07a5423bb35512b4b583a9b2a942cb2d83a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112043
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-06 17:42:39 +00:00
pq 47ee568c52 extension type awareness in matching
Fixes: language_2/extension_methods/static_extension_getter_setter_test

Change-Id: I71b4b3ac63a3d22f4b1856a912b123661d5e23d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112031
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-06 16:44:33 +00:00
danrubel 627e4c8cad Parse additional NNBD not-null assertions
Fix https://github.com/dart-lang/sdk/issues/37708

Change-Id: I2fc696663d2dd03c5af44fe204fe6058674b5134
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111987
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-08-06 01:17:47 +00:00
Konstantin Shcheglov e10c138475 Infer extension types without extension override.
R=brianwilkerson@google.com

Change-Id: I66dbcee754995563acb09d4643df1800ea1064d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111990
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-06 00:29:37 +00:00
Paul Berry 9f9abe5fcd Flow analysis: get rid of "identity" state.
Previously, flow analysis was using the `_identity` state for two
purposes:

1. As the "if true" state for "false" and the "if false" state for
   "true".

2. As the base state for the "break" and "continue" code paths of
   loops, before any "break" or "continue" statements had been seen.

For the first purpose, it is more consistent to use
`_current.setReachable(false)`.  This ensures that in code disabled by
`if (false)`, promotions are not lost.  For the second purpose, it is
easier to just use `null` as the base state.

There is a small behavioral change: previously in unreachable code, if
we used the `_identity` state, all variables were considered assigned;
otherwise they were considered assigned or not according to the state
of the code prior to the branch point that caused the variables to
become unassigned.  Now, unreachable code consistently has the latter
behavior.

Change-Id: If77a3fcff9391b66164c0445d5242cb04c9a6b76
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112023
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-08-05 23:23:47 +00:00
Paul Berry 2cac8637d6 Flow analysis: separate nullability and reachability tests.
Change-Id: I875493ff504f094ade2818f29539525fdd75a808
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112020
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-08-05 22:12:26 +00:00
Brian Wilkerson d0775434be Resolve extension methods within other extensions
Change-Id: I15283f84e5e8c7e39301d7358f4de1ee7f5eb857
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112021
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-08-05 21:58:26 +00:00
Paul Berry 612825900e Only create FlowAnalysisResult data structure when running internal tests.
The data structure isn't optimized (recording data into it takes
O(n^2) time, where n is the number of unreachable nodes in the file),
and we don't need it for normal execution anyhow.

Following the model used by CFE and dart2js, the analysis driver has a
new flag `retainDataForTesting` to control whether the test data is
gathered, so that under normal execution there is no overhead.  The
testing data is stored in a new class `TestingData`; we can expand
this class in the future if we need to record other intermediate
analysis results for testing.

Change-Id: I7e79d31b9f3c9c45121dceb49094be802e4d286f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111481
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-08-05 21:12:43 +00:00
Konstantin Shcheglov 034131f10a Add MapSubstitution interface, and use it in Member hierarchy.
R=brianwilkerson@google.com

Change-Id: If5a9c07c2fb1582fb31ba414f0f329c59eb1af16
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111924
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-05 18:30:50 +00:00
Brian Wilkerson 77a957da1d Report the use of an extension override without an instance member access
Change-Id: Ibd960aedd1739e4b446371349f0f4d4d6d5f6c61
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112000
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-08-05 18:11:28 +00:00
Konstantin Shcheglov 28a4717476 Don't overwrite synthetic field setter with duplicate setter.
R=brianwilkerson@google.com

Change-Id: I006b6e845b5359d02f0f60b48bf89544b2ed80c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111966
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-05 18:02:41 +00:00
Konstantin Shcheglov ba28529184 Use findNode and assertType().
R=brianwilkerson@google.com

Change-Id: I8229d83c402ddf0283fdbfc9fb9ebfd232dad9ce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112001
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-05 17:50:27 +00:00
Johnni Winther 6eb9f54683 [cfe] Add ClassKind to Listener.begin/endClassOrMixinBody
This allows for special-casing extension declarations bodies. This
is needed because the on-clause hold the type of the parameter holding
the `this` value inside an instance method in an extension declaration.

Change-Id: I7af9bf0a9842f7e6f42dddb54fb487c69a8fa519
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111729
Reviewed-by: Dan Rubel <danrubel@google.com>
2019-08-05 17:15:37 +00:00
Konstantin Shcheglov ae2a06171c Fix for enclosingElement for default parameter element initializer function.
This fixes another error found by Mike's fuzzer.

R=brianwilkerson@google.com

Change-Id: Id16a280949d14ce7589d47a88faf9a038c588e04
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111961
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-08-05 16:45:17 +00:00
Brian Wilkerson ee6fa7c10d Move more diagnostic tests
Change-Id: I0b5ec1af7dd21298136788e3a7c1898f626acc22
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111982
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-08-05 16:17:37 +00:00
Konstantin Shcheglov 919b5cd2d5 Fix for duplicate top-level declarations.
This fixes one of the errors which Mike found with fuzz tester.

R=brianwilkerson@google.com

Change-Id: I987f47746c8721d9a39de0c186cf4c3776f66611
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111960
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-05 14:29:55 +00:00
Konstantin Shcheglov 91f879b0a1 Remove unused import.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I4896f11da73cc84d569bd28d32c5b4b23d5c4530
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111964
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-05 14:28:01 +00:00
Konstantin Shcheglov df606cc566 Infer types of static fields in extensions, summary2.
This fixes:
co19_2/LanguageFeatures/Extension-methods/syntax_member_declarations_t01

R=brianwilkerson@google.com

Change-Id: Ic1fba8721414028d04a18c28eeff5c09db6c07c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111921
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-03 15:18:11 +00:00
Konstantin Shcheglov bf020a99d4 Sanitize recursive GenericTypeAlias in summary2.
This fixes:
co19_2/LanguageFeatures/regression/33599_34700_t02
co19_2/LanguageFeatures/regression/33599_34700_t04

R=brianwilkerson@google.com

Change-Id: Ia01274fbce6a8a3e23a538bb81fd69cd1f6c1947
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111922
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-03 15:10:16 +00:00
Konstantin Shcheglov be581f69db Move search.getDeclarations to available declarations.
So, we keep this feature working when switch to summary2.
IntelliJ does not use it though.

Change-Id: I11f71443dc7354de8a593442de470fa91aa228e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111870
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-03 15:10:06 +00:00
Brian Wilkerson 8ff3d98232 Split diagnostic tests into the standard locations
Change-Id: I48ddf036832ba6c7b2d8d0548d9697d85fc12581
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111872
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-08-03 14:17:31 +00:00
Brian Wilkerson 19ab86cbf6 Report the use of covariant in optional parameters
Change-Id: I66cbe9b7b1c95e02ade4038786d6494af2f34a44
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111869
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-08-03 14:17:11 +00:00
Konstantin Shcheglov 4bebfebdbc Initial support for extension methods inference.
Only the case with ExtensionOverride is supported for now.
Still fixes some co19 tests.

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

Change-Id: I6c7c98f4839a1fc40504d93107648d952a4176d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111866
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-02 23:24:41 +00:00
Brian Wilkerson 57b9ce7fb7 Report when super is used in instance members of extensions
Change-Id: I58370268e018d97c78667c900678e419af07e7ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111863
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-08-02 21:31:49 +00:00
Konstantin Shcheglov 9bb446aae1 Record if MethodDeclaration has NativeFunctionBody, so it external.
This fixes the issue with failing DDC tests like this:
co19_2/LayoutTests/fast/media/matchmedium-query-api_t01

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

TypeError: html.window.styleMedia[$matchMedium] is not a function
Change-Id: Ic7a80c53122cdc3e0bcce835b5717413e342ce74
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111862
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-02 19:43:39 +00:00
Konstantin Shcheglov 0e24437b81 Replace InterfaceType with Substitution in Member(s).
I ran it in google3:
https://test.corp.google.com/ui#id=OCL:261214112:BASE:261244079:1564722983792:f6286cfb

Change-Id: I820d2dbbaefe495c20b0d8fe3f7c54f1766d5689
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111383
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-08-02 19:34:18 +00:00
Brian Wilkerson 622ec5099f Support tearoffs through extension overrides
Also add tests for other forms of tearoffs

Change-Id: I43ee36ffcc9e69af6b2785153c6d95f5de814371
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111668
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-08-01 21:35:53 +00:00