This fixes two issues:
- Dupes when a folder exists both on the real file system and has a child overlay
- Dupes when a folder has multiple descendant overlay files
Both are covered by new tests.
Fixes https://github.com/dart-lang/sdk/issues/37211.
Change-Id: Ia36eb1083dae55608009016a68589355a1eecabe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108600
Commit-Queue: Danny Tuppeny <dantup@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
I pulled this list from the build package and turned on the ones that
only had a handful of violations. Left the others that I eventually want
to enable commented out.
Change-Id: I09ec037982e29d3682bc0eaa6af28adfad91b941
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108563
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Lints that have associated fixes (as opposed to assists)
can now be added relatively easily to dartfix as a new fix.
* rename BasicFixLintTask to BasicFixLintAssistTask
* new BasicFixLintErrorTask class
Change-Id: I73f591e627c10ceeb076622bfc6c3bb9a5a3c022
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108640
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
Benchmarks are checked in as benchmarks/<Benchmark>/dart/<Benchmark>.dart.
This scheme is compatible with our existing benchmarking infrastructure
and will aid migrating the benchmarks with minimal breakage.
This change adds an Example benchmark to show how it is done.
The benchmarks directory is now added to the Dart benchmarking builds.
Change-Id: I25971ba3b219194fa9cfea6b938372d877477e28
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108414
Commit-Queue: Jonas Termansen <sortie@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
When calling SetupFunctionParameters, Function type arguments were copied into local type parameters. Local type parameters = previous type parameter + function type parameters.
At BuildTypeParameterType(), local type parameters contains duplicated type parameter from function, which ends up with returning wrong type.
Bug: https://github.com/dart-lang/sdk/issues/37382
Change-Id: I8f486b0b9a9120845349fe1734bbfcc35f1126a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108501
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Zichang Guo <zichangguo@google.com>
No longer depends on the unspecified `Type.toString`.
Bug: http://dartbug.com/37452
Change-Id: Ie7eeeecdc8970831082e763edc46f195a8bfc7e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108275
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
- Adds enum values
- Adds named constructors
- Avoids duplicates by using parent name for constructors/enums when checking against existing imports
- Adds parens to end of labels in completion text
Change-Id: Idab620326023a153c01c0ebd8349a2101dfae7b4
Bug: https://github.com/dart-lang/sdk/issues/37472
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108413
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
This replaces several very similar lint fixes with a single BasicFixLintTask
thereby making it easier to add new fixes for existing lints.
In addition, the dartfix test names have been normalized
to match the corresponding DartFix info and additional tests added.
Change-Id: Ia3d1e0ffcb14d34e0af5d49650888eb2c49a9b42
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108520
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
DebugCheck bytecode instruction is generated after parameter variables
are declared and copied into their locations in the prologue.
It helps debugger to stop in the beginning of a function at the point
where parameters can be inspected. It is generated only if
'--bytecode-options=debugger-stops' is specified.
Change-Id: I0f3b1ea8dc45d762a5dcee75b5d3a4ffc0b2a1b1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108371
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Modified list of bytecodes that check for debug breaks (wip).
Make sure source positions are not interpreted as return addresses.
Fix skipping of bytecode stub frames when stepping.
Fix DEBUG_CHECK macro to call debugger twice for breakpoint and following step.
Various minor bug fixes and printing improvements.
Change-Id: I36713de0548d060eddb7cbfd6fadb05c731e881a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108205
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
The spec has un-deprecated insertText which we'll use soon.
Change-Id: I2aa6dc8b3392867ecec0d0764b8635453a896a1a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108412
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
This version added three new lints:
* prefer_iterable_whereType
* unnecessary_const
* unnecessary_new
Change-Id: I99b5f3df86a0243091699cd2f3e1d38b5c5a9216
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108381
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Add the new location where clangd stores it's index to gitignore.
Change-Id: I10381131d4adfcbbaa4f3ebf7705f5e84b47f353
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108411
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
* This change is being enforced server-side on pub.dev.
* This CHANGELOG entry is added for compliance with
`docs/process/breaking-changes.md`.
Change-Id: I9e10c4f224e084db6b6c78d637bb01a2a59565b3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108409
Reviewed-by: Sigurd Meldgaard <sigurdm@google.com>
Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
Auto-Submit: Jonas Jensen <jonasfj@google.com>
Both a bug in the framework and the test not mathcing the current specification
of multiline strings.
Fixes#33060
Bug: http://dartbug.com/33060
Change-Id: I8937c768f560d119cb16f3684d9407db2ab04c35
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108408
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Change-Id: I4c315a0c61a4c5bf8144aaf4d85ab5ae95dec315
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108400
Auto-Submit: Alexander Thomas <athom@google.com>
Commit-Queue: Jonas Termansen <sortie@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
CFE needs to have access to them to be able to perform constant
evaluation.
Bug: https://github.com/dart-lang/sdk/issues/37357
Change-Id: I15705e6fda330a05765ec2e8354051276cb88b07
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108278
Auto-Submit: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
If a test has the static error markers and is run on analyzer, the
test runner verifies that the reported errors exactly match the expected
ones. A test with error markers is skipped on all other configurations.
Change-Id: Ib921acde517688f5b47937a5b100c0507e0e9138
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107823
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
This reverts commit 3d14b75f97.
An Isolate Group (IG) is a collection of isolates which were spawned from the
same source. This allows the VM to:
* have a guarantee that all isolates within one IG can safely exchange
structured objects (currently we rely on embedder for this
guarantee)
* hot-reload all isolates together (currently we only reload one
isolate, leaving same-source isolates in inconsistent state)
* make a shared heap for all isolates from the same IG, which paves
the way for faster communication and sharing of immutable objects.
All isolates within one IG will share the same IsolateGroupSource.
**Embedder changes**
This change makes breaking embedder API changes to support this new
concept of Isolate Groups: The existing isolate lifecycle callbacks
given to Dart_Initialize will become Isolate Group lifecycle callbacks.
A new callback `initialize_isolate` callback will be added which can
initialize a new isolate within an existing IG.
Existing embedders can be updated by performing the following renames
Dart_CreateIsolate -> Dart_CreateIsolateGroup
Dart_IsolateCreateCallback -> Dart_IsolateGroupCreateCallback
Dart_IsolateCleanupCallback -> Dart_IsolateGroupShutdownCallback
Dart_CreateIsolateFromKernel -> Dart_CreateIsolateGroupFromKernel
Dart_CurrentIsolateData -> Dart_CurrentIsolateGroupData
Dart_IsolateData -> Dart_IsolateGroupData
Dart_GetNativeIsolateData -> Dart_GetNativeIsolateGroupData
Dart_InitializeParams.create -> Dart_InitializeParams.create_group
Dart_InitializeParams.cleanup -> Dart_InitializeParams.shutdown_group
Dart_InitializeParams.shutdown -> Dart_InitializeParams.shutdown_isolate
By default `Isolate.spawn` will cause the creation of a new IG.
Though an embedder can opt-into supporting multiple isolates within one IG by
providing a callback to the newly added `Dart_InitializeParams.initialize_isolate`.
The responsibility of this new callback is to initialize an existing
isolate (which was setup by re-using source code from the spawning
isolate - i.e. the one which used `Isolate.spawn`) by setting native
resolvers, initializing global state, etc.
Issue https://github.com/dart-lang/sdk/issues/36648
Issue https://github.com/dart-lang/sdk/issues/36097
Original review: https://dart-review.googlesource.com/c/sdk/+/105241
Difference to original review:
* Give each isolate it's own [Loader] (for now)
* Sort classes during initialization for spawned isolates if app-jit is used (to match main isolate)
* Fix IsolateData memory leak if isolate startup fails
Difference to first reland(Patchset 2):
* Fix typo where memory was freed twice.
Change-Id: Ib1c83fe83b629cd50ae6af90ee99fdd44da882d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108367
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
This was needed in the past when AOT code was executed in the compiler to implement loading and evaluate constants.
Change-Id: I66633acfc61676bce10b0a0abb7955e4e45be54c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104100
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
We could also remove FlutterCorrections, because right now we don't
use it, but we will restore it soon as we get new Flutter domain
methods.
R=brianwilkerson@google.com, devoncarew@google.com
Change-Id: I084fe5acbe5d854673c7247d734aeca1f8d721af
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108364
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>