Commit Graph

3345 Commits

Author SHA1 Message Date
Peter von der Ahé 704a43558d Move getSubstitutionMap to KernelClassBuilder
Also, change the signature to return a kernel substitution map.

This prepares for fixing issue https://github.com/dart-lang/sdk/issues/34856,
as DillClassBuilders don't have builder wrappers for type variables and
supertypes.

Change-Id: Ia3f2458852ffaad766c44f62fd93e68234650126
Reviewed-on: https://dart-review.googlesource.com/c/81002
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-22 12:41:59 +00:00
Kevin Millikin 393fe44f8f Resolve types from the class header earlier
When building outlines, resolve unresolved types from the class
header (including superclass, mixin, and interface types) before any
methods from the body are parsed.  This ensures that they types from
the class header are not shadowed by names introduced in the body.

Change-Id: Ie842b9ab23d9b44d91609f9e1bf79c052cfce2d4
Reviewed-on: https://dart-review.googlesource.com/c/81008
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
Auto-Submit: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-10-22 12:33:55 +00:00
danrubel f5cd6ccfb7 More shared fasta/analyzer error codes
Change-Id: I1b80ce7f8b17e0bb1e974d4effcf8d64a250dda1
Reviewed-on: https://dart-review.googlesource.com/c/80944
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-10-20 03:10:25 +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
Dan Rubel 3f9c3e6ebc Update unterminated string error message length
Change-Id: I2f19ef1034d70b73b2342b1441ef73637d524373
Reviewed-on: https://dart-review.googlesource.com/c/80740
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-10-19 13:52:02 +00:00
Kevin Millikin 2b23fa0607 Improve the way we call inferExpression
This function took a boolean flag typeNeeded and then it had an early
exit guarded by the condition (!typeNeeded && isTopLevel).  That is, a
false value for typeNeeded was just ignored when isTopLevel was false.

Change it so the early exit is only guarded by the value of the
argument, and ensure that the intended value is passed at all the call
sites.  This makes it easier to see under which conditions we are and
are not peforming type inference.

This is a prelimary step to simply not performing any inference when
we don't intend to perform any inference.

Change-Id: Ibe2260aa4967250afb8b23899216ae32c5321183
Reviewed-on: https://dart-review.googlesource.com/c/80667
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-10-19 09:28:38 +00:00
Peter von der Ahé e18aeac38c Remove NamedExpressionJudgment
Change-Id: Ic11bfb519996462af8474e08540d4093b703bdd5
Reviewed-on: https://dart-review.googlesource.com/c/80664
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-10-19 08:41:37 +00:00
Peter von der Ahé b429939377 Remove CheckLibraryIsLoadedJudgment
Change-Id: I21d96c30ebf68371450cfa73d905fec8d48d9616
Reviewed-on: https://dart-review.googlesource.com/c/80663
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-19 08:41:37 +00:00
Peter von der Ahé f13537064e Remove ThrowJudgment
Change-Id: I9b2dc1d1f3aa9c183119f6802a976de858c22fdc
Reviewed-on: https://dart-review.googlesource.com/c/80662
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-19 08:41:37 +00:00
Peter von der Ahé 1bc9bbcdb6 Remove StaticInvocationJudgment
Change-Id: I52da9574e99307bd7afad440100491ac5264f1a0
Reviewed-on: https://dart-review.googlesource.com/c/80602
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-19 08:41:37 +00:00
Peter von der Ahé 1610356382 Remove StaticGetJudgment
Change-Id: I6a098693837749df1ea053e250b4b352e6d42417
Reviewed-on: https://dart-review.googlesource.com/c/80601
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-19 08:41:37 +00:00
Peter von der Ahé 5aa705776b Remove desugaredError
Change-Id: Ide688cb577457a642d989deb8d4c7c638274a1bc
Reviewed-on: https://dart-review.googlesource.com/c/80448
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-10-19 07:16:47 +00:00
Sigmund Cherem 0f32be21bf Document single root flag
Change-Id: Ibccbf1346bdacaa6cda5ae1b0bbe479bc8cc1164
Reviewed-on: https://dart-review.googlesource.com/c/78821
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-10-18 17:20:24 +00:00
Dan Rubel 1061c83779 Optionally report scanner errors via errors list rather than in the token stream
This is the first in a multi step process of moving scanner errors
out of the token stream and into a separate errors list produced by the scanner.
As of this CL, if the scanner.reportErrors flag is set then the scanner will report
the unterminated string error via the errors list rather than the token stream.
Once all scanner clients have been updated to process errors reported
through the scanner's error list, then the scanner.reportErrors flag will be removed.

Change-Id: I6ef73df786d98a387cbf2044c4c8325412573f11
Reviewed-on: https://dart-review.googlesource.com/c/80509
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-10-18 11:55:01 +00:00
Kevin Millikin b27e4febaf Eliminate an unnecessary boolean variable
There is a flag in the code switching between the current CFE/Analyzer
behavior and a different behavior.  It's not clear that this other
behavior is ever planned, but since we're not testing it it's better
to get rid of the code for now and restore it later if we ever want
it.

Change-Id: I8be4af7d39dcb9296b4b48fa10a6352df9e1e8b0
Reviewed-on: https://dart-review.googlesource.com/c/80660
Auto-Submit: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-10-18 11:37:50 +00:00
Dan Rubel 1ca91cb6db Ensure unterminated string error is reported on visible characters
Change-Id: Ie6321062b71a45293a91a3a50fc4d24b2633235c
Reviewed-on: https://dart-review.googlesource.com/c/80502
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-10-17 22:19:33 +00:00
Peter von der Ahé 531bce152d Tune invariants for inferredTypesMap
Change-Id: I860761507d09d517929fd95e4632dca333917d57
Reviewed-on: https://dart-review.googlesource.com/c/80444
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-10-17 11:12:33 +00:00
Peter von der Ahé 822fd6a1ed Remove StringLiteralJudgment
Change-Id: I86d06d413916b2329b07c599a0e4fffedee1ef13
Reviewed-on: https://dart-review.googlesource.com/c/80442
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-10-17 10:43:03 +00:00
Peter von der Ahé cf84ce88d6 Remove StringConcatenationJudgment
Change-Id: Ic6f6d77c04c7cc1ec78dd6143982f33c34f89f3a
Reviewed-on: https://dart-review.googlesource.com/c/80441
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-17 10:43:03 +00:00
Peter von der Ahé f0ebf05092 Remove RethrowJudgment
Change-Id: Ieadeeede6dfa5ede27707a19a0f1c2a228c0892c
Reviewed-on: https://dart-review.googlesource.com/c/80280
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-17 10:43:03 +00:00
Peter von der Ahé 83c6963ce2 Remove PropertyGetJudgment
Change-Id: I5344b800816f86254ecd92278a23f468ff9d7892
Reviewed-on: https://dart-review.googlesource.com/c/80143
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-17 10:43:03 +00:00
Daniel Hillerström 5d1832b20a Disallow factory constructors in mixin declarations.
Signal a compile-time error if a mixin declaration contains a factory
constructor (regardless of whether it is redirecting). Note, this only
applies to _mixin declarations_, derived mixin classes can still
contain factory constructors.

Closes https://github.com/dart-lang/sdk/issues/34804

Change-Id: I713b623316664ea360f896789d8e619ad6f07ca5
Reviewed-on: https://dart-review.googlesource.com/c/80100
Commit-Queue: Daniel Hillerström <hillerstrom@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-17 05:44:46 +00:00
Peter von der Ahé cfa92dc090 Remove NullJudgment
Change-Id: I05b38d30acb336e6288e702f0a27dbc1254f3786
Reviewed-on: https://dart-review.googlesource.com/c/80127
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-16 15:18:42 +00:00
Peter von der Ahé 9fadaec5f8 Remove NotJudgment
Change-Id: Ic83e7b089ec4d08aeef49c23cd837ea93fcfd9f6
Reviewed-on: https://dart-review.googlesource.com/c/80126
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-16 15:18:42 +00:00
Peter von der Ahé e65ed1d143 Remove LogicalJudgment
Change-Id: Ia561b03e7442c864b6b49ad2de2f3547105c9d6d
Reviewed-on: https://dart-review.googlesource.com/c/80125
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-16 15:18:42 +00:00
Peter von der Ahé 0bcd98eb76 Remove FunctionExpressionJudgment
Change-Id: Ib039089b2e47e41ffacdabe4bd0e829190f4064e
Reviewed-on: https://dart-review.googlesource.com/c/80123
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-16 15:18:42 +00:00
Peter von der Ahé 4df63225a8 Remove IsJudgment and IsNotJudgment
Change-Id: I57f8d2229ffffadd0adb98a6570de9b37cc8bffb
Reviewed-on: https://dart-review.googlesource.com/c/79800
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-16 15:18:42 +00:00
Peter von der Ahé 035aad457e Remove ConstructorInvocationJudgment
Change-Id: If1078598bbc68fe4220f50a6293473c849bd4a51
Reviewed-on: https://dart-review.googlesource.com/c/79762
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-16 15:18:42 +00:00
Peter von der Ahé 840afb4f9d Remove ConditionalJudgment
Change-Id: I0473fd7adf81aa98c1475846f64793ea7c050de3
Reviewed-on: https://dart-review.googlesource.com/c/79742
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-16 15:18:42 +00:00
Peter von der Ahé 7fa8bc3fee Remove BoolJudgment
Change-Id: I75863fee06f42513fc5df39df075c2255748a110
Reviewed-on: https://dart-review.googlesource.com/c/79740
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-16 15:18:42 +00:00
Peter von der Ahé 801f28666a Remove ThisJudgment
Change-Id: I3c3e94b3423563d8ad80c5a158fb64dd8c248ae5
Reviewed-on: https://dart-review.googlesource.com/c/79702
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
2018-10-16 13:49:35 +00:00
Peter von der Ahé a2aa6c8414 Consolidate DDC dependencies on front_end
We're consolidating all dependencies on package:front_end in one file per tool.

The idea is, if you want to depend on something in the package:front_end, you
modify pkg/front_end/lib/src/api_unstable/ddc.dart and consult with the
front-end team.

These consolidated files will help us when designing a public API in the
future.

Change-Id: I505b8f986e8c2b1d93e158171c1ecc0c4e12b9a6
Reviewed-on: https://dart-review.googlesource.com/c/78220
Reviewed-by: Jens Johansen <jensj@google.com>
2018-10-16 08:02:49 +00:00
Peter von der Ahé 9137fe26ac Remove deprecated_problems.dart
Change-Id: I5f6cad8077b9faaf2164dd0f3f1f5d54c59ed0b7
Reviewed-on: https://dart-review.googlesource.com/c/78203
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
2018-10-16 08:02:49 +00:00
Peter von der Ahé ed7be67cab Remove CompilerOptions.onProblem
Change-Id: Ie143024ff13725f3a0db83d8fc95eecc189af905
Reviewed-on: https://dart-review.googlesource.com/c/78202
Auto-Submit: Peter von der Ahé <ahe@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2018-10-16 08:02:49 +00:00
Peter von der Ahé 18cb217840 Remove CompilerOptions.onError and CompilationMessage
Change-Id: Ia4ff435c6653c42fb27aecc46177a10ff8a8e4a2
Reviewed-on: https://dart-review.googlesource.com/c/78201
Auto-Submit: Peter von der Ahé <ahe@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2018-10-16 08:02:49 +00:00
Peter von der Ahé d4fac1684c Remove CompilerOptions.reportMessages
Change-Id: I6b3e2f44ef89ba6a234fab97e08f56a69247d13f
Reviewed-on: https://dart-review.googlesource.com/c/77081
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2018-10-16 05:50:05 +00:00
Peter von der Ahé 0a6d960d66 Update bazel_worker to onDiagnostic
Change-Id: If1e0f3977f9d70ae74cfb589aeddcb96ce1fafc1
Reviewed-on: https://dart-review.googlesource.com/c/78041
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-10-15 14:06:55 +00:00
Peter von der Ahé e502edf28b Add DiagnosticMessage support API
Change-Id: I0ae8d37e48951a58bd2d9016397baeee916857ee
Reviewed-on: https://dart-review.googlesource.com/c/78063
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
2018-10-15 14:06:55 +00:00
Dmitry Stefantsov bf270577cc [fasta] Report errors on generic function types in type arguments
Fixes #30931

Bug: http://dartbug.com/30931
Change-Id: Ia44f8ff95e85547997912c7dd1403ae1f77aec33
Reviewed-on: https://dart-review.googlesource.com/c/79720
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2018-10-15 13:48:03 +00:00
Peter von der Ahé 0a986f3f80 Remove a few shadow nodes.
Change-Id: I69191dc63286543ab3d10ed73f3d9b232d2be84d
Reviewed-on: https://dart-review.googlesource.com/c/78840
Auto-Submit: Peter von der Ahé <ahe@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-15 12:01:09 +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
Peter von der Ahé 0b1b09116a Simplify handling of non-shadow nodes in type inference
Change-Id: Ia2fd532267d30d4b9d5f62221485e747be8d7def
Reviewed-on: https://dart-review.googlesource.com/c/78760
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-12 16:47:55 +00:00
Peter von der Ahé af7cead848 Clone default values of mixin application constructors
Fixes https://github.com/dart-lang/sdk/issues/31767

Change-Id: Ief8d620dff49967a165a93fbf8d8916d7389e80a
Reviewed-on: https://dart-review.googlesource.com/c/79261
Commit-Queue: Peter von der Ahé <ahe@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-10-12 15:02:41 +00:00
Peter von der Ahé 87a10d9811 Provide context for NotAType
Change-Id: I50cc64a7fdd8bffe471b922a54ffe2a5b6ca339b
Reviewed-on: https://dart-review.googlesource.com/c/79521
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
2018-10-12 14:54:38 +00:00
Kevin Millikin 69cf0ec97c Signal an error if a class extends a mixin
Declared mixins are not classes and should not be able to be
extended.  This was not allowed by the analyzer anyway and since the
mixin declaration feature is not launched, we are not breaking any
code by making this bug fix.

Change-Id: Ia49dd207213accb16ad8dd819a22844d65ccfcab
Reviewed-on: https://dart-review.googlesource.com/c/79524
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2018-10-12 14:45:28 +00:00
Daniel Hillerström eee8787a8d Generate noSuchMethod forwarders for private members inherited from a
class in a foreign library.

This CL changes the predicate which is used to decide whether to
generate noSuchMethod forwarders such that it returns true whenever
the class in question has a user defined no such method or the
enclosing library of the class is different from that of the member.

Closes https://github.com/dart-lang/sdk/issues/33727

Change-Id: I0ffcbb8c8bdd69e4261bcefce2251d31babc19cf
Reviewed-on: https://dart-review.googlesource.com/c/79209
Commit-Queue: Daniel Hillerström <hillerstrom@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-10-12 13:58:10 +00:00
Peter von der Ahé 54ef78b7c5 Remove non-strong vm dill files from SDK
Change-Id: Ia9337ec090333902ea8fc2492f2ffdac1bcff2d1
Reviewed-on: https://dart-review.googlesource.com/c/79520
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-10-12 12:42:57 +00:00
Aske Simon Christensen 5cbb640f7c Error for type arguments after named constructor with implicit new
Closes https://github.com/dart-lang/sdk/issues/34403

Change-Id: I18a55b8f33ed313c048add4a8b49f5f98fc26cf5
Reviewed-on: https://dart-review.googlesource.com/c/78080
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-10-12 09:48:02 +00:00
Kevin Millikin 2fa1143600 Check classes at mixin applications
When a declared mixin is applied to a class, the class must implement
the superclass constraint interfaces named in the mixin declaration.

Change-Id: I6ace9fe244c1c87860b69c2c5e68f2c31ae73d7c
Reviewed-on: https://dart-review.googlesource.com/c/79206
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Daniel Hillerström <hillerstrom@google.com>
2018-10-12 08:34:07 +00:00
Peter von der Ahé 18110717fe Move infer methods to visitor
Change-Id: Ia635e2c66c914621961f4ef165f67fb3e2759f07
Reviewed-on: https://dart-review.googlesource.com/c/78746
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-10-12 04:50:53 +00:00