Commit Graph

4770 Commits

Author SHA1 Message Date
Peter von der Ahé 2080faff8c Remove stale references to patched_dart2js_sdk/platform.dill.
Change-Id: I8b7b4274ef64f0b6f6c5a31ba654e8fb44843161
Reviewed-on: https://dart-review.googlesource.com/12283
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-09 14:36:55 +00:00
Paul Berry a5d461fbf5 Move instrumentation of top level inferred types to a later pass.
This will simplify integrating top level type inference with the
InterfaceResolver, since the instrumentation logic won't have to be
migrated.

Change-Id: I89a23888d92622549c493249fd3d98c6ee5af8da
Reviewed-on: https://dart-review.googlesource.com/12124
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-06 23:07:47 +00:00
Paul Berry 12fa3effa2 Set transformer flag appropriately for forwarding stubs.
Also extend the verifier so that we won't make mistakes like this
again in the future.

Change-Id: Idbdf02dabed8b8cf86cb0b8a1fc08080338b9709
Reviewed-on: https://dart-review.googlesource.com/11961
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-10-06 18:03:28 +00:00
Konstantin Shcheglov 31a3c9f466 Add reset() to IncrementalKernelGenerator.
R=ahe@google.com, paulberry@google.com, sigmund@google.com

Bug: https://github.com/dart-lang/sdk/issues/31021
Change-Id: I6fffe2979cecdeca91a2582f26ce24449c9a3b79
Reviewed-on: https://dart-review.googlesource.com/11962
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2017-10-06 17:49:01 +00:00
Peter von der Ahé 16aa720d27 Remove compiling platform.dill from patch_sdk.dart
This separates compiling platform.dill files from the patch_sdk.dart
script. The motivation for that is that I'm working on reading patch
files directly from Fasta, so we can completely remove the build step
for generating patched_sdk and dart2js_patched_sdk.

Short-term this should allow Paul to add a strong-mode version of
platform.dill without causing to many conflicts with my work on
patches.

Change-Id: I1150845b2986348d4fffe27092701d8a9b57ea54
Reviewed-on: https://dart-review.googlesource.com/11506
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-06 15:34:37 +00:00
Brian Wilkerson de47e633cb Add a synthetic begin token for use in error recovery
Change-Id: I72a97b866b67b97a03b2f87c3b8a75219c97b29d
Reviewed-on: https://dart-review.googlesource.com/11762
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-10-06 15:28:37 +00:00
Vyacheslav Egorov 8ee26d8a19 [kernel] Make TypeEnvironment.strongMode into a field instead of getter.
This allows creating strong mode TypeEnvironments without actually subclassing
it.

Make SubtypeTester.isBottom treat Null as Bottom in strong mode.

Bug:
Change-Id: Icdd1a4b736ce0fe839a6ef30cf24487111f32d25
Reviewed-on: https://dart-review.googlesource.com/11882
Reviewed-by: Paul Berry <paulberry@google.com>
2017-10-06 15:14:36 +00:00
Paul Berry abf6f29d14 Simplify technique for circularity detection during type inference.
We don't need to supply the dependent node every time we call
inferAccessorFused; we can just let TypeInferenceEngine keep track of
which type inference node (if any) is currently being inferred.

Change-Id: I75b222ce038ad31c196aeb9c33b315731f4f1c52
Reviewed-on: https://dart-review.googlesource.com/11700
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-06 14:25:35 +00:00
Jens Johansen 58eba86481 [kernel] AsyncForInStatements fileOffset is now on await
Bug:
Change-Id: Ie20f92cd64a771169c69ce2e841648ddef5e4ee4
Reviewed-on: https://dart-review.googlesource.com/11860
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-06 10:31:19 +00:00
Paul Berry 1f0d2aa65d Remove old type inference logic from front_end.
Change-Id: I451c9a06466fb1836dd502f0d7b5c565403f0ce9
Reviewed-on: https://dart-review.googlesource.com/11646
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-05 21:37:32 +00:00
Paul Berry 0d931bb75f Take forwarding stubs into account when performing type inference.
Change-Id: I5e6af73ee59458d9324bc48bfb47c06e437cb836
Reviewed-on: https://dart-review.googlesource.com/11644
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-05 21:31:10 +00:00
Paul Berry b73bcd932f Merge top level type inference of methods into InterfaceResolver.
Type inference of methods now occurs during
SourceLoader.prepareTopLevelInference.  Since this method visits
classes in class hierarchy order, we no longer need special logic to
ensure that base classes are inferred before derived classes.

Change-Id: Idf9f67226005bee6986d026c255e83926b4253d6
Reviewed-on: https://dart-review.googlesource.com/11560
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-10-05 19:05:11 +00:00
Brian Wilkerson 2220f21e40 Preserve comments when rewriting the token stream
Change-Id: I76dc76dfcace7b4d0802f961879e26d6a6133170
Reviewed-on: https://dart-review.googlesource.com/11300
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-10-05 17:29:50 +00:00
Paul Berry 1c9c8110bb Add testing code to enable easier debugging of forwarding stub logic.
The testing code is disabled by default.  In can be enabled by
changing the value of a const bool.

Change-Id: I1756d2e00adb8695d04bcd6427148b5fe0b5d1dc
Reviewed-on: https://dart-review.googlesource.com/11540
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-05 17:04:04 +00:00
Paul Berry cdbd085119 Handle a forwarding stub corner case.
This CL handles the case where a class overrides a concrete method
with an abstract one, but forwarding stub logic determines that a
concrete method is needed.  In this case we don't need to create a
full forwarding stub; we just need to add an implementation to the
abstract method that already exists.

We annotate this case as `/*@forwardingStub=implementation*/`.

Change-Id: Id0b0c6f84f666161f17942d3b4d7afc115c615f5
Reviewed-on: https://dart-review.googlesource.com/11367
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-05 16:47:10 +00:00
Dan Rubel bc64539b68 Fix import recovery
Revise import directive recovery to use a recovery listener
similar to class header recovery.

Change-Id: I83e941d7c5ace144404b182d3fac208eda920867
Reviewed-on: https://dart-review.googlesource.com/10760
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-10-05 11:49:51 +00:00
Paul Berry 6fce6ba854 Modify InterfaceResolver to resolve non-accessors earlier.
We only need to retain long-lived forwarding nodes for getters and
setters; methods and operators can be resolved immediately, since
their resolution can't depend on top level type inference of
initializers.

This should help speed up InterfaceResolver by reducing the number of
long-lived objects it leaves in the heap.

Change-Id: I05f8d5ed1c12968f4382d43ae23955171cdbfc05
Reviewed-on: https://dart-review.googlesource.com/11241
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-10-05 05:17:16 +00:00
Dan Rubel efeaa0eab3 Class header recovery
This updates the fasta parser to handle out of order clauses
in the class header similar to analyzer.

Also:
* Fix parseTopLevelDeclaration in parser test proxy
* Fix parseStuff to correctly update token stream
* Extract skipUnexpectedTokenOpt
Change-Id: Ic20c0ab1355e866aa241c591ceeada390890c46a
Reviewed-on: https://dart-review.googlesource.com/9880
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-10-04 21:33:09 +00:00
Peter von der Ahé e7f26dc769 Improve handling of qualified names.
Change-Id: I02d7cb034c268303bd51fc43f4e0d809f346e8d2
Reviewed-on: https://dart-review.googlesource.com/10500
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-04 18:34:49 +00:00
Alexander Markov 9ee73fe322 [Kernel] Remove outdated and duplicated front-end Targets
This CL replaces outdated VmTarget and FlutterTarget with VmFastaTarget
and FlutterFastaTarget. 'Fasta' suffix is droped from target names.

The new FlutterTarget extends VmTarget, so they share more code.

Change-Id: Id79956698a889c9a49b8a67914f1f96a731407ab
Reviewed-on: https://dart-review.googlesource.com/9423
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-04 18:02:49 +00:00
Brian Wilkerson a212f20a9a Generate a parser error when an enum declaration is empty
Change-Id: I459a329f2e1a3cb7ad52f4a1e79d717d2afeb49f
Reviewed-on: https://dart-review.googlesource.com/10661
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-10-04 17:33:39 +00:00
Paul Berry 7c82b747f8 Actually store forwarding stubs in Class objects.
Change-Id: I3792688a61cdba49b38a8da7f27e9b305fa7a54e
Reviewed-on: https://dart-review.googlesource.com/10704
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-04 17:30:49 +00:00
Brian Wilkerson e9a849a7d6 Add synthetic semi-colon when missing after expression statement
Change-Id: Id14fb60c56790c83358b4c026770e0c691841908
Reviewed-on: https://dart-review.googlesource.com/10721
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-04 15:19:33 +00:00
Peter von der Ahé 26fa9353db Clean up handling of invalid types.
Change-Id: Ied3595ac0ee1c5e164ca888504ae252d121e458f
Reviewed-on: https://dart-review.googlesource.com/10863
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2017-10-04 10:42:43 +00:00
Peter von der Ahé cda4f284b0 Implement warnings on unresolved this-sends.
Change-Id: Ia9ab202e157102c22b2705d13582d3529288f81e
Reviewed-on: https://dart-review.googlesource.com/8502
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2017-10-04 08:21:32 +00:00
Paul Berry 82623e49ee Mark forwarding stubs as abstract/concrete correctly.
Change-Id: I986f0bcd079a206e1d055762e5443e3b32ded295
Reviewed-on: https://dart-review.googlesource.com/10701
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-03 21:02:23 +00:00
Paul Berry 310c153eb6 Substitute generic function type parameters when making forwarding stubs.
When creating a forwarding stub for a method like this:

class C<T> {
  void foo<U>(T x, U y) {}
}
class D<V> extends C<V> {
  // Forwarding stub needed here
}

Two substitutions need to be done:

- We need to substitute V in place of T.

- We need to substitute the generic parameter for the forwarding stub
  in place of the generic parameter for the method being overridden.

So the generated method should look like this:

class D<V> extends C<V> {
  void foo<W>(V x, W y) => super.foo<W>(x, y);
}

Change-Id: Id846611c499b9aad4f042380862cbad08a6f1c17
Reviewed-on: https://dart-review.googlesource.com/10581
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-10-03 20:38:41 +00:00
Dan Rubel f0da9b68b5 fix skipUnexpectedToken
Change-Id: I6e75c00d035e561f8cd3e69b83fac264397e1fac
Reviewed-on: https://dart-review.googlesource.com/10720
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-10-03 20:27:44 +00:00
Paul Berry eb7fc7d158 Tag forwarding stubs with a boolean flag in the kernel representation.
Change-Id: I5cdd05acd79f149b3702f982b1289930078d4e1b
Reviewed-on: https://dart-review.googlesource.com/10620
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-03 17:17:09 +00:00
Dan Rubel 9b14174556 fix import recovery
Update import recovery and extract skipUnexpectedTokenOpt
for use by class header out-of-order recovery.

Change-Id: I48fbadca34074b543cf8ca7f53ca3ab25a74f470
Reviewed-on: https://dart-review.googlesource.com/10440
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-10-03 15:48:39 +00:00
Aske Simon Christensen 868f5d9fa6 Recover from error in for initializer
When a variable declaration in a for initializer has an error,
an error-throwing expression statement is produced by the general
variable declaration parser code. The body builder was not prepared
for this, but was trivially extended to handle it.

Closes https://github.com/dart-lang/sdk/issues/29984
Change-Id: Iace9a095cc150e26e62ed17716823e62e5d2ece3
Reviewed-on: https://dart-review.googlesource.com/8801
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-10-03 15:09:09 +00:00
Paul Berry c31a29aeb0 Remove the CovariancePropagator class.
The functionality of this class has been moved to InterfaceResolver.

Change-Id: Ieb887c5dd45f587985b08243d04e2bd02afeaff8
Reviewed-on: https://dart-review.googlesource.com/10204
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-03 15:01:31 +00:00
Brian Wilkerson b4d179e58a Recover from missing identifiers
Change-Id: I3c7a908449861eeed0915c4d74b10f4d1e46fde4
Reviewed-on: https://dart-review.googlesource.com/7558
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-10-03 13:41:02 +00:00
danrubel df97434c28 extract ForwardingListener from ForwardingTestListener
Change-Id: I6e073e97130cc78eb33d663b79f3b8e472c7d408
Reviewed-on: https://dart-review.googlesource.com/10220
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-10-03 12:54:38 +00:00
Paul Berry 99b757eb44 Move _recordInstrumentation from CovariancePropagator to InferenceResolver.
This will make it possible to delete CovariancePropagator without
regressing covariance instrumentation too badly.

Note that there are some small regressions due to the fact that
InferenceResolver doesn't yet correctly propagate covariance
annotations from a base class field to a subclass field/setter.  These
regressions can't be fixed until after InferenceResolver is integrated
with top level type inference.

Change-Id: I29352484e9f13bbfa9b34d463c6b27eab7f9698f
Reviewed-on: https://dart-review.googlesource.com/10200
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-02 22:13:09 +00:00
Peter von der Ahé cefe4d5d65 Move compile_platform_test.dart to tool directory.
This also reverts "Move command_line.dart and most of compile_platform.dart into lib/"

This reverts commit 1916dc75e6.

Change-Id: I2598514c6bb62eec392bd00f20b15aac72b6fa42
Reviewed-on: https://dart-review.googlesource.com/9600
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2017-10-02 16:23:56 +00:00
Aske Simon Christensen accddd1d97 Use error message templates for error tokens
Also fixes unicode U+ notation in error messages to use uppercase
letters for the hex code, as per the Unicode Standard conventions.

Closes https://github.com/dart-lang/sdk/issues/29985
Change-Id: I6397e03cb3e0d5eca156621bb4b19dfa643d9437
Reviewed-on: https://dart-review.googlesource.com/9320
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-10-02 14:23:26 +00:00
Peter von der Ahé 9471634c64 Improve documentation.
Change-Id: I280e7a785aba441f80e5accf010037b7a1d2a078
Reviewed-on: https://dart-review.googlesource.com/9641
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2017-10-02 12:54:36 +00:00
Paul Berry 17a4f66126 Instrument the creation of forwarding stubs.
Change-Id: I98d15cdeaff72da4b6e4b8532689c24f42b6d501
Reviewed-on: https://dart-review.googlesource.com/9860
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-09-30 18:27:25 +00:00
Paul Berry 3d2eba4d7f Start making use of the new InterfaceResolver class.
For the moment there is some duplicate functionality: both
InterfaceResolver and CovariancePropagator will try to propagate
covariance annotations.  This is ok for the short term, since
InterfaceResolver is still incomplete.  Once InterfaceResolver is
complete, I'll remove CovariancePropagater.

Note that forwarding stubs are now created, but they are not yet added
to classes, so they don't appear in the compiled kernel output.

Change-Id: I0a1814bd2abc5b63dbf7ceb6fc45f3da81728ee9
Reviewed-on: https://dart-review.googlesource.com/9788
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-09-30 14:47:26 +00:00
Paul Berry 46a8c79cf2 Add the ability to create forwarding stubs for operators.
Change-Id: Icc60faa9b6f706a0344a4ba3fdbe29ba61bcc078
Reviewed-on: https://dart-review.googlesource.com/9786
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-09-29 21:38:14 +00:00
Dan Rubel 5a67a64957 Refactor parseClass
Refactored the parseClass method in preparation for
adding recovery, updating error messages, and analyzer integration.

* Added several new parser events
    - handleClassExtends
    - handleClassImplements
    - handleClassHeader

* Revised the endClassDeclaration event

Change-Id: Ib58893097650eefb45051b462e9df7260b7776b2
Reviewed-on: https://dart-review.googlesource.com/9580
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-09-29 19:34:15 +00:00
Konstantin Shcheglov b5fc2de3bf Keep sources for libraries of the current cycle.
This should fix the issue 30917 flakiness.

The reason why the tests were failing is that the code in the tests
was not quite correct Dart code, so Fasta generated a synthetic
`#errors` top-level variable with fileUri == null. We should skip
this field because it is not a part of any unit, because its fileUri
is not the fileUri of any unit.

But we lose fileUri for a Node if Program.uriToSource does not
include this URI. So, if we clear uriToSource in KernelDriver, we
lose all the file URIs. So, now we keep sources for the cycle files.

The reason for flakiness is because of the same race condition
between analyzing AnalysisDriver.addFile() and getResult(). If
we process getResult() before, we don't have to read the library
kernel file, we just create in first time, and fileUri(s) are
valid.

R=ahe@google.com, paulberry@google.com, sigmund@google.com

Bug: https://github.com/dart-lang/sdk/issues/30917
Change-Id: Ie559cf2a8a778ebf4a9e297f5cb13d30a98b5a3c
Reviewed-on: https://dart-review.googlesource.com/9744
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-09-29 18:38:52 +00:00
Peter von der Ahé 0442a2bea0 Rename lookupSuperMember to lookupInstanceMember.
Change-Id: I14a17ce0b6a7569b2390dede9d1bfebdbb15be95
Reviewed-on: https://dart-review.googlesource.com/8541
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2017-09-29 16:40:22 +00:00
Peter von der Ahé 3473717fc5 Remove unused message template.
Change-Id: I193bc46074584584b9172badbe589668786ec99e
Reviewed-on: https://dart-review.googlesource.com/9681
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-09-29 16:19:42 +00:00
Brian Wilkerson dbb6c5a442 Associate more Fasta errors with analyzer errors
Change-Id: I235f748a267819abea739da3885ff9613034ebfe
Reviewed-on: https://dart-review.googlesource.com/9160
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-09-29 15:14:23 +00:00
Dan Rubel 9527f37146 refactor parse import
* `as` clause and `deferred as` clause processing pushed
     into a new processImportPrefixOpt method.
* New handleImportPrefix event for communicating 
    `as` clause and `deferred as` clause to the listeners.
* Several new more detailed error messages for out of order
    clauses and keywords in the import directive.

Change-Id: I133842c7225403fa000ca1cf0e49af9f8a011386
Reviewed-on: https://dart-review.googlesource.com/8580
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-09-29 14:39:01 +00:00
Peter von der Ahé fe17656583 Remove toSuperMethodInvocation.
Change-Id: I2a600c58df11bae75e597747756680c9aa0caf03
Reviewed-on: https://dart-review.googlesource.com/8480
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2017-09-29 12:04:02 +00:00
Peter von der Ahé 132d707f6a Implement context for messages and use it for argument mismatches.
Change-Id: Iebf1a1fa0450ab900a9d220bf82bdf0f940c0399
Reviewed-on: https://dart-review.googlesource.com/7714
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2017-09-29 11:30:24 +00:00
Paul Berry 112eed2e55 Separate creation of forwarding stubs from creation of their implementations.
This is necessary for two reasons:

- Sometimes we need to create a forwading stub that is abstract.

- Sometimes a class has an existing abstract member that needs to be
  given an implementation.

Change-Id: I1fdb91ff421c1cd1234141db9c9b2190870164fa
Reviewed-on: https://dart-review.googlesource.com/9121
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-09-28 18:03:23 +00:00