Commit Graph

1498 Commits

Author SHA1 Message Date
Martin Kustermann e2b6cc93b6 [vm/async] Update async transformation to take NNBD mode into account
The removal of unsafeCast causes flutter galley size regressions:

  - armv7: -0.43%
  - armv8: -0.21%

which we should look into recovering by having better inlining heuristics.

Issue https://github.com/dart-lang/sdk/issues/41373
Closes https://github.com/dart-lang/sdk/issues/41307

Change-Id: I7c0ba4c9598e13f01e807a607c83d50cf03e9abe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142501
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-04-11 08:56:52 +00:00
Anna Gringauze 9f65693f57 Use offset for detecting scope in ExpressionCompiler
ExpressionCompiler currently translates offsets of scopes to line
numbers during the binary search in the library in order to find
the inner-most scope containing the line where debugger has stopped.
This results in many offset-to-line translations per evaluation request,
each translation also performing a binary search in Source.lineStarts
table.

To make scope lookup more efficient, this change uses Source.lineStarts
table to find the offset for the debugger stop once, and uses integer
offset comparisons instead in the scope binary search.

Closes: https://github.com/dart-lang/sdk/issues/40281
Change-Id: I72052b144d15acef684a5f8d29b40f6c5774b723
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142461
Commit-Queue: Anna Gringauze <annagrin@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-04-09 22:29:14 +00:00
Johnni Winther 0d16ff6d86 [cfe] Handle static type of access on Never
Closes #41273

Change-Id: Ia236481ab47033198d7952086cdf5c9c8f5a34b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142366
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-08 08:46:02 +00:00
Johnni Winther 04b6c6a116 [cfe] Handle Null <: Never in mixed inheritance bounds check
Change-Id: I994f76b3b4f6d498a8e41f7e34849616960dca08
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142368
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-06 15:18:31 +00:00
Johnni Winther 32f82b5852 [CFE] Add NNBD compilation mode into kernel component
Fixes https://github.com/dart-lang/sdk/issues/41311

Change-Id: I2f4345f8ca7a31da705fcae37a28a8b801feb5e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142149
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-04-06 14:00:01 +00:00
Johnni Winther a7f1a5e677 [cfe] Handle A extends FutureOr<B> <: FutureOr<B>
Change-Id: Ib5580328f006b033b2c004083b575a2cf5aed551
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141541
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-05 06:31:19 +00:00
Martin Kustermann c4a7c3488e [vm/async] Make async transformer use typed variables, make async patch use function types
This gets rid of a slow AssertAssignable (function type test)
in _asyncThenWrapperHelper/_awaitHelper, which currently falls back to the slow table
search:

  AssertAssignable
    ^--> TypeTestingStub
          ^--> SlowTypeTestStub
               ^--> Subtype6TestCacheStub

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

Change-Id: I3b6517b7e348e39619e8096d6ac2a4b179bb3242
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142022
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Clement Skau <cskau@google.com>
2020-04-03 08:28:47 +00:00
Johnni Winther 46bb15edf3 [cfe] Fix inheritance test data discrepancies.
Change-Id: I367aace60324a7755f795d2f24aaf0d138bc8d59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141602
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-02 13:14:39 +00:00
Johnni Winther 0a9e57419b [kernel] Make verbose qualified names conditional in toStringInternal
Including the library name/uri in types and member names makes these
unreadable in most cases. This changes that default toStringInternal
to omit the library name/uri but supports a verbose mode that includes
the library name/uri for debugging the rare occasions where they matter.

Change-Id: I783e8bd0ac5d2f19c3051e8e7f226b240c8d1bc8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141546
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-30 08:41:15 +00:00
Jens Johansen 3e053b7da2 [kernel] Polish toString implementation on AST nodes
Change-Id: I0c21ded156243d8f8ff178d1b31bf0512758ebe1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141101
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-03-27 07:33:38 +00:00
Johnni Winther d2e96aa6d3 [cfe] Report error on (un)assigned late variables
Closes #40601
Closes #41103
Closes #40946

Change-Id: I1a28f497ffe0be3d1f9e673f1e8be7a518bbfc7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140403
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-23 14:48:53 +00:00
Jens Johansen feefcf0c94 [kernel/CFE] Simplified toString on (ast) nodes
This is a bare-bones implementation (and test) for having an explicit
toString on all `Node`s.
This can then be extended as-needed to better suit our debugging
purposes. It's not allowed to leak, though.

Change-Id: I8d3f5a9cd13b292ed7a6bf33762e507286f3fa7d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139805
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-03-23 10:25:23 +00:00
Dmitry Stefantsov dea82cc39a [cfe] Make instantiation-to-bound algorithm NNBD-aware
Closes #40764.

Bug: https://github.com/dart-lang/sdk/issues/40764
Change-Id: Ia9eff062f54632edbdb26937879742d7a813a07c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139643
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-03-20 09:03:41 +00:00
Jens Johansen 532a602fef [kernel] Rewrite verify test
Prerequisite for changing toString on ast nodes.

Change-Id: I295e201df160b158b4ea709c61e525206efb5523
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140063
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-03-20 06:46:50 +00:00
Johnni Winther 6dff390dec [cfe] Compute consolidated supertypes
Change-Id: Ifa2303afd61af184b171f13f5959b0786273cedb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140041
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-19 15:26:09 +00:00
Dmitry Stefantsov 928f9fc932 [cfe] Remove flag --force-nnbd-checks
The checks are now always enabled for the "non-nullable" experiment

Closes #40980.

Bug: https://github.com/dart-lang/sdk/issues/40980
Change-Id: I32a141a93f0ba86ebdab554e1f312c2147927993
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139440
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-03-16 15:01:38 +00:00
Johnni Winther e865bd89d1 [cfe] Normalize nullabilities in opt out libraries
Closes #40526

Change-Id: Idf40bd430fad0f08d7cc117f988bfc5e2b432a46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139200
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-12 21:58:17 +00:00
Johnni Winther ae2a25c537 [cfe] Handle FutureOr in late lowering
Closes #40783

Change-Id: Ia3afff050df8719bd7574c753639cde1ca321eff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138930
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-12 21:55:46 +00:00
Dmitry Stefantsov 029c8f1cee [cfe] Use Supertype instead of InterfaceType in ClassHierarchyBuilder
Change-Id: I1a11ce32237480c0eddf50a7a86cd56b89116e77
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138801
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-03-09 12:57:17 +00:00
Jens Johansen e8c58a7a3d [CFE] Add ability to compare CompilerOptions
This is (intended to be) a small step towards removing the batch compiler.

Change-Id: I201c56b6d33420f91d2f4b989682670cd8d6a387
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138508
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-03-09 09:11:57 +00:00
Clement Skau b681bfd8d2 [VM] Fixes bad reuse/typing of temps in async transform invocations.
For a method invocation temps might get allocated for both the receiver
and argument(s) so that:
  A().foo(await null)
becomes:
  Future<void> tmp0
  ...
  tmp0 = A() // <- Type mismatch.
  yield ...
  tmp0 = tmp0.foo(:result) // <- Correct type.

This happens because the liveness analysis finds that the (previously
dynamic) temps can be reused.
Unfortunately 121988 added typing information to these temps, which
means they can't be simply reused in all cases.

This fix makes the temps dynamic again (by removing the type) but adds
unsafecasts to all VariableGets to propagate the know type.

Bug: https://github.com/flutter/flutter/issues/51828
Change-Id: I89c82763e0d4f8b102bb55dec3b694d017345517
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138500
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
2020-03-06 12:20:45 +00:00
Jens Johansen 4e2a1a1b0f [CFE/kernel] Generate dart files with versions in them from tools/experimental_features.yaml
Use the version from tools/experimental_features.yaml as the current
language version (as specified in kernel).

Use the "enabledIn" from tools/experimental_features.yaml to write out
the major and minor version for enabling features. This replaces the
hard-coding of when nnbd is enabled (in front-end).

Change-Id: I5b5dd7c2bb0c1a412ef1e660dfbe61e227193e1b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138284
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-03-04 14:15:05 +00:00
Jens Johansen 70b4ffae4b [kernel] Delete limited_ast_to_binary.dart
Change-Id: I11277942cd8bb9f3f3b875233934ec0281c0369b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138085
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-03-04 11:45:55 +00:00
Jens Johansen 12df258354 [kernel] Small cleanup of binary printer
Change-Id: I3d5f6d145811e24fa4cb2936fb8fedf1c00d86b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138084
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-03-04 11:43:35 +00:00
Jens Johansen 1b41780198 [kernel] Investigative inspection into BinaryPrinter
This CL investigates some properties around the BinaryPrinter in the form
of non-optional-assert-like-things.
Said another way, if the assumptions added here are wrong, we'll crash,
but if the bots doesn't explode the assumptions are probably true and
we can procede from there.

Change-Id: Ia366be0e81164a4004f6d6764002cbb0f7383008
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137978
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-03-04 07:21:03 +00:00
Johnni Winther c1ff1cbaae [cfe] Merge clone with existing procedure in mixin transformation
This ensure that any existing references to the original procedure
will correctly refer to the cloned procedure after transformation.

Change-Id: I08f561f11e88d717041009e6a9bd9bb6e8054d88
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137976
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-03 13:52:11 +00:00
Johnni Winther fbe9f6115d [cfe] Handle Object* in NNBD_TOP_MERGE
Closes #40481

Change-Id: I5f1060b137e9855106873b2173930d3ebed69930
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137921
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-02 12:15:50 +00:00
Johnni Winther 5800997ed7 [cfe] Correctly merge nnbd signatures
Change-Id: I33e55f6ba4c2822c790667a06e0456410696ca04
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137920
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-02 12:15:50 +00:00
Alexander Markov 88be7d1cae [cfe] Fix hasImplicitSetter for late final fields
Unlike other final fields, late final fields without initializers have a
corresponding implicit setter. Previously, front-end was setting
Field.hasImplicitSetter to false for late final fields.
As a result, ClassHierarchy.getDispatchTarget was not returning such
field as a dispatch target for a setter invocation and TFA was inferring
incorrect types for late final fields (as if all setters for late
final fields disappeared).

Change-Id: I8f55f7ec8afa38e8cc3f54f85bd66c0381ae6318
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137701
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Auto-Submit: Alexander Markov <alexmarkov@google.com>
2020-02-28 07:59:44 +00:00
Johnni Winther 60582b3d7a [cfe] Handle future or fields
Change-Id: Ie915ca0824f983966e5017e899a02d50ad14b091
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136978
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-02-26 09:53:30 +00:00
Johnni Winther 2ce1df7630 [cfe] Handle compilation from agnostic dill
Change-Id: Iecf2fda94ba1029931151b0d45d013da065859d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136965
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-02-25 12:10:20 +00:00
Johnni Winther aa31a9162b [cfe] Support constant evaluation in agnostic mode
Change-Id: Ia33ea19a091b1172eb9b4125f5f30a625886d34e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136632
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-02-24 13:29:05 +00:00
Clement Skau ad118b1718 [Kernel] Fixes bug in async transform causing reuse of temps.
Certain nodes will delimit(..) an Expression to some Statements, which
was resetting the temp nameIndex.
This meant any sub-expressions that generated temps would not cause the
outer expressions to see those already used temps.

Bug: https://github.com/dart-lang/sdk/issues/40662
Change-Id: Ife07052ab756b9d05f34f69380614c7eb7309a4c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136224
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2020-02-21 07:35:16 +00:00
Dmitry Stefantsov b7aff59973 [cfe] Report errors on case expressions without primitive equality
Bug: http://dartbug.com/40425
Change-Id: Ied2da91cc32b84f6e64c0b76541e020d1a2447b9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136227
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-02-20 13:39:09 +00:00
Alexander Aprelev 612728f970 [frontend-server] Only set VM environment defines for VM compilation target.
Fixes https://github.com/dart-lang/sdk/issues/40669.

Change-Id: I9e58deed5d2c67c953de7dae10ccbf9c46ab6fd5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136411
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2020-02-20 03:05:25 +00:00
Dmitry Stefantsov 59045afd1d [cfe] Remove unnecesary uses of SubtypeCheckMode.ignoreNullabilities
Change-Id: I8b64ca39e7a153141885d428fc5bd95e446fcb49
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135640
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-02-18 12:28:29 +00:00
Jens Johansen a314cff6ee [CFE] Indicate NNBD compilation mode on all libraries
Change-Id: I01236158b593d0e4bd7cf67017459f05fb9520a8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136128
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-02-18 08:51:37 +00:00
Johnni Winther a9485e8b14 [cfe] Encode getter/field invocation as .call on property get
Current semantics with respect to evaluation order is retained.

Change-Id: I6794c8a720237536696afab2fe056042f8464ec8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129702
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-02-17 13:52:45 +00:00
Dmitry Stefantsov d22c695e89 [cfe] Fix isSubtypeOf for cases like FutureOr<FutureOr<X%>>
Closes #40600.

Bug: http://dartbug.com/40600
Change-Id: Iff1fbc7f4f499bc2ba154d5fe43494dae0511f94
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135315
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-02-17 10:44:35 +00:00
Robert Nystrom 44f027b8b2 Remove the matchers_lite.dart library.
It was literally only used by one test, and only used a single function
not already defined in minitest. That function was only used in one
place and wasn't very useful, so just refactored to not use it.

Change-Id: Ib51ac255233aa29bcaf19aaba16bc99d7eff724d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135965
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
2020-02-14 20:44:52 +00:00
Daco Harkes eceb249f88 [CFE] Add support looking up extension members to LibraryIndex
Change-Id: I911b5034c871507cbb051264bac6bbd9b7eef26a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135462
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-02-14 15:46:37 +00:00
Jens Johansen 2b22c37be7 [kernel] Fix binary.md specification of Extensions
Fixes #40629

Change-Id: If458df641553d84c7a75aa51698145b22183c3d6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135901
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-02-14 11:02:25 +00:00
Dmitry Stefantsov 6a2c350a3e [cfe] Fix isSubtypeOf for FutureOrs
Previously it was assumed both A <: B implies FutureOr<A> <: FutureOr<B>
and FutureOr<A> <: FutureOr<B> implies A <: B.  This CL fixes the
implementation.

Closes #38905.

Bug: http://dartbug.com/38905
Change-Id: I2c8d105659b310e3ab5db261ebdc81cbfa456ae1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135301
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-02-12 07:55:37 +00:00
Johnni Winther 8d9cbaf4c4 [kernel] Allow invalid types in naive_type_checker
Change-Id: I9a7614056fa3a14a382e41ad1e927f023fe00250
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134726
Reviewed-by: Jens Johansen <jensj@google.com>
2020-02-07 21:14:37 +00:00
Dmitry Stefantsov fd992e423e [cfe] Normalize supertypes before nnbd-top-merging them
Closes #40454.

Bug: http://dartbug.com/40454
Change-Id: Ia255c99c937a04876e04a0f0f5935147e55fbd35
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134842
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-02-07 18:14:40 +00:00
Dmitry Stefantsov 535ee87c21 [kernel] Add NORM implementation
Change-Id: I6292a4247ed0c418f2d3d6fa841ed086894c31c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134335
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-02-07 15:00:24 +00:00
Johnni Winther e74c829499 [cfe] Add test for Never in opt-out code
Change-Id: I91683d57e25457e371aaf8f0bb0092426409186e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134526
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-02-06 13:25:51 +00:00
Johnni Winther 80dacdf3a0 [kernel] Add Class.hasConstConstructor and Member.isNonNullableByDefault predicates
Closes #40440

Change-Id: I2776c165d23e2aa2bf5d7515741bd0f0d067b26d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134292
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2020-02-06 12:27:37 +00:00
Dmitry Stefantsov af323cfa56 [cfe] Move isTop, isBottom, isObject, and isNull to CoreTypes
Change-Id: I15fbcc5b853e6786244994efef530a96436fb457
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134721
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-02-06 11:56:51 +00:00
Dmitry Stefantsov 4389ffa9d2 [cfe] Allow member access on Never
Closes #40125.

Bug: http://dartbug.com/40125
Change-Id: I2dcb1bdc022990ba8c76c7798c4e6793c5c89108
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134326
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-02-05 12:32:09 +00:00