The new file pkg/dev_compiler/lib/src/analyzer/driver.dart handles
building the linked summary for a build unit, and then is capable of
doing analysis using LibraryAnalyzer.
The algorithm is very similar to analyzer_cli's build mode. The
biggest difference is that `dartdevc` has existing support for
discovering source files from the explicit source list (rather than
requiring every source to be listed on the command line). We don't want
to break that support, so there's a bit of logic to follow imports,
exports, and parts.
After the linked summary is produced, DDC gets the analysis results
(errors and resolved AST) for each library, and compiles it into a JS
module.
Change-Id: I7bf1ce1eca73fd036002e498de5924c488b534dc
Reviewed-on: https://dart-review.googlesource.com/c/82469
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
This reverts commit ffe2116c27.
Reason for revert: Windows test failures on the bots.
Original change's description:
> Fix bug in TTL logic for IPv6
>
> This was introduced by my previous CL - there is existing logic to set
> the TTL for multicast that works for IPv4 and IPv6, this patch ensures
> the correct call is made.
>
> Change-Id: I8db7325ca79eb38c9de6d6e431231ed2ec1b0f47
> Reviewed-on: https://dart-review.googlesource.com/c/82023
> Reviewed-by: Zach Anderson <zra@google.com>
> Reviewed-by: Siva Annamalai <asiva@google.com>
> Commit-Queue: Zach Anderson <zra@google.com>
TBR=zra@google.com,asiva@google.com,dnfield@google.com
Change-Id: I06abb9f1aac638ab31541d66b55a3f5a29b0e5a9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/82885
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
This was introduced by my previous CL - there is existing logic to set
the TTL for multicast that works for IPv4 and IPv6, this patch ensures
the correct call is made.
Change-Id: I8db7325ca79eb38c9de6d6e431231ed2ec1b0f47
Reviewed-on: https://dart-review.googlesource.com/c/82023
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
This reduce the memory footprint and cost of parsing these extensions. Another
advantage is a reduction on the size of the .map files. On a large customer
app, this was a 11% reduction, and the frames section was about 1Mb (excluding
the extra names and uris added on the existing tables).
The encoding works as follows:
- minified names are written as a list of names and indices, in pairs.
{'n1': 1, 'n2': 2} => 'n1,1,n2,2'
- frames are encoded using a sequence of values with markers for the different
kind of frames. Numbers are encoded using VLQ deltas. We use VLQ because it's
already available to any parser that deals with the mappings).
This change also uses the dart2js_tools parser implementation for all unit tests.
Change-Id: Iacc2833c6517eb473955cc618adec501c610870f
Reviewed-on: https://dart-review.googlesource.com/c/82780
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Mixin declarations cannot be instantiated or extended, so they should
not have constructors. Adding a compiler-generated constructor causes
us to try to add an invocation of the default superclass constructor.
Because the superclass constraint is encoded as a superclass this can
cause a spurious error that is impossible to fix.
Fixes https://github.com/dart-lang/sdk/issues/35011
Change-Id: Ia8f99d00b1a5b042da233d54f3cc1f0c6345e779
Reviewed-on: https://dart-review.googlesource.com/c/82447
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Before, e.g.
```
main() {
L: var x, y;
x = 42;
y = x;
}
```
would produce something like
```
static method main() → dynamic {
{
dynamic x;
dynamic y;
}
x = 42;
y = x;
}
```
i.e., the variable declaration was in another scope, and their usage
isn't legal.
This CL fixes that by either
a) (the normal case) not wrapping it --- the label is not used anyway.
b) (the case that cannot happen) put a label on the first part so the
output would be something like
```
L: dynamic x;
dynamic y;
x = 42;
y = x;
```
Fixes#34943.
Change-Id: I24132665dab53fb8fb024f73dd11e0d1f1945812
Reviewed-on: https://dart-review.googlesource.com/c/82063
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
This was an idea that never manifested.
This has thus been unused code for more than a year.
Change-Id: Ib7c373a988a220e515d873d7a9e815cecfab178c
Reviewed-on: https://dart-review.googlesource.com/c/82225
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Analyzer does not put mixin declarations in the `.types` getter, which
broke DDC's assumption that it contained all of the class/interface
types in the compilation unit. Kernel backend was not affected.
Change-Id: I219d814766fb97ef81920d0150cb1dfbbc6087f5
Reviewed-on: https://dart-review.googlesource.com/c/82022
Auto-Submit: Jenny Messerly <jmesserly@google.com>
Commit-Queue: Alan Knight <alanknight@google.com>
Reviewed-by: Alan Knight <alanknight@google.com>
This fixes the instantiated type for type parameters of function types
(whose default types are otherwise not computed) when the bound is
explicitly specified as Object.
It also enables error reporting to detect if a bound on a type variable
was specified or not, so that when a generic function type is printed,
the bound can be printed if and only if it was originally specified.
Fixes https://github.com/dart-lang/sdk/issues/34920
Change-Id: I9ad3f1cacb1b36eaef139d50c8e73cc7a8cc915b
Reviewed-on: https://dart-review.googlesource.com/c/81405
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
It was giving the child 4 to 34 seconds to finish, which might not
be enough in some of our configurations (e.g. SIMDBC), where
we include Dart to Kernel compilation time into the test.
We increase the slack to 60 seconds.
Change-Id: I3ea5a78debd60d1bcbbff9924f3671487fbd93f3
Reviewed-on: https://dart-review.googlesource.com/c/81820
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
Auto-Submit: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>