Konstantin Shcheglov
ca5bf28fa5
Chain SummaryResynthesizer(s).
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1585093003 .
2016-01-14 14:43:29 -08:00
John Messerly
9098ae50ae
fix #25425 , more inference of generic methods
...
this adds support for function expr invocation, as well as other element types besides executable elements
R=brianwilkerson@google.com , leafp@google.com
Review URL: https://codereview.chromium.org/1586813002 .
2016-01-14 13:27:34 -08:00
John Messerly
724492ca82
fixes #25340 , propagatedType now finds the instantiated generic method's return type
...
R=brianwilkerson@google.com , leafp@google.com
Review URL: https://codereview.chromium.org/1582863003 .
2016-01-14 13:20:13 -08:00
John Messerly
154959c762
fixes #25407 , generic list and map literal type comments
...
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/1589663002 .
2016-01-14 13:18:59 -08:00
danrubel
559fb01244
assert isAsynchronous and isGenerator false if parseAsync is false
...
and fix ASYNC_NOT_SUPPORTED error code
R=brianwilkerson@google.com , scheglov@google.com
Review URL: https://codereview.chromium.org/1584823003 .
2016-01-14 14:52:23 -05:00
danrubel
ebd1736c58
Add EmbedderSdk to EmbedderUriResolver
...
R=brianwilkerson@google.com , johnmccutchan@google.com , pquitslund@google.com
Review URL: https://codereview.chromium.org/1584663006 .
2016-01-14 14:51:43 -05:00
Brian Wilkerson
1e9326d13f
Add tests for computation of constant expressions involving ??
...
R=paulberry@google.com
Review URL: https://codereview.chromium.org/1589043002 .
2016-01-14 10:55:21 -08:00
Paul Berry
ba31abe429
Use constructor args in favor of summary "encode" functions.
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1585973004 .
2016-01-14 09:30:04 -08:00
Konstantin Shcheglov
9484bfe1c9
Issue 25064. Incrementally resolve comments only if both are documentation.
...
R=brianwilkerson@google.com , skybrian@google.com
BUG= https://github.com/dart-lang/sdk/issues/25064
Review URL: https://codereview.chromium.org/1581293002 .
2016-01-14 08:38:37 -08:00
Paul Berry
834263789f
Include the export namespace in the prelinked summary.
...
This prevents having to traverse the transitive closure of exports
when resynthesizing a library from its summary.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1589573003 .
2016-01-13 13:16:23 -08:00
John Messerly
f114dc1073
fix #25409 , error if a generic method argument did not have a corresponding parameter
...
R=leafp@google.com
Review URL: https://codereview.chromium.org/1579503005 .
2016-01-13 11:20:13 -08:00
John Messerly
5947a2047f
associate a staticInvokeType with loadLibrary
...
I missed this early-exit code path. This was caught by DDC's tests.
R=leafp@google.com
Review URL: https://codereview.chromium.org/1577143002 .
2016-01-13 10:40:03 -08:00
Konstantin Shcheglov
0d8a31e0a6
Create LibraryElement.loadLibrary during resynth.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1583613002 .
2016-01-13 09:35:37 -08:00
John Messerly
3aa98fa335
fixes #24711 , allow factory constructors to be downcast
...
R=leafp@google.com
Review URL: https://codereview.chromium.org/1578863004 .
2016-01-13 09:04:21 -08:00
Paul Berry
c1642e9d9f
Make summary builder classes implement summary interfaces.
...
This allows for easier unit testing, since we can use a builder class
directly rather than having to serialize and deserialize it.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1581993002 .
2016-01-13 08:54:48 -08:00
Konstantin Shcheglov
2f57161e74
Patch together getters/setters in different parts.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1577413002 .
2016-01-13 08:26:29 -08:00
Konstantin Shcheglov
c474538e77
Resynth LibraryElement.deferred.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1580173002 .
2016-01-13 08:18:57 -08:00
Paul Berry
35f3961ea6
Test dependency tracking of unused imports/exports.
...
If library A imports or exports library B (either directly or via an
export), library B needs to be included in the dependency list for
library A's prelinked summary, since a change to library B might change
the meaning of a name which *is* used by library A.
Note that two of the new tests are currently failing, due to the fact
that we aren't tracking dependencies that only affect the export
namespace. That will be fixed in a future CL.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1580013003 .
2016-01-13 08:17:49 -08:00
Konstantin Shcheglov
9f6612d68c
Resynth importElement.prefixOffset.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1581803002 .
2016-01-13 08:14:49 -08:00
Konstantin Shcheglov
c09b9025d7
Tests for propagated type of final/const fields/top-levels.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1586493002 .
2016-01-13 07:54:34 -08:00
Konstantin Shcheglov
f4c4b27d3f
Resynth the 'final' property of top-level variables.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1575323003 .
2016-01-13 07:52:35 -08:00
John Messerly
351ccc586f
fix generic function expressions, part of #25175
...
R=leafp@google.com
Review URL: https://codereview.chromium.org/1579303002 .
2016-01-12 16:04:57 -08:00
John Messerly
0549def77d
checking and inference of null coalescing operator, fixes #24564 and fixes #25387
...
R=leafp@google.com
Review URL: https://codereview.chromium.org/1575173005 .
2016-01-12 15:50:18 -08:00
Konstantin Shcheglov
5815e34221
Test for LibraryElement.hasExtUri resynth.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1578263003 .
2016-01-12 12:55:42 -08:00
Paul Berry
85a7affb7c
Record information about parts of dependent libraries in summaries.
...
This information will be necessary in order to determine whether a
summary needs to be re-linked, since a change to a part of library A may
affect any other library that depends on library A, even if the defining
compilation unit of library A is unaffected.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/1574113002 .
2016-01-12 12:02:47 -08:00
Konstantin Shcheglov
b9ff7c4860
Compute exportNamespace during resynthesizing.
...
Also use it to find the entry point.
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1576213002 .
2016-01-11 16:37:43 -08:00
Brian Slesinsky
5cc87405aa
Don't log stack trace for a bad package URL in a source file.
...
BUG=https://github.com/dart-lang/sdk/issues/25367
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/1572073003 .
2016-01-11 15:53:49 -08:00
Paul Berry
4e0546ef44
Move NameFilter to its own file so it can be conveniently reused.
...
This avoids some duplication of logic in summarize_elements.dart.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1574053002 .
2016-01-11 15:47:22 -08:00
Konstantin Shcheglov
11d1147df8
Compute public namespace during resynthesizing.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1573203003 .
2016-01-11 15:05:40 -08:00
John Messerly
bc7843b025
fix #25280 , treat setters as returning void in strong mode
...
this gives better checking for an incorrect "return" in a setter
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/1531313002 .
2016-01-11 14:42:48 -08:00
Paul Berry
927744e318
Handle setters properly in NameFilter.
...
According to the language spec (which we are trying to follow as closely
as possible in the implementation of summaries), a setter for `x` has a
name `x=`, hence a combinator like `show x` should show both the name
`x` and `x=`.
This has no immediate effect beyond the unit test for NameFilter (since
at the moment the only names which are affected by the behavior of
NameFilter are the names of classes, and they never end in `=`). But in
a future CL I plan to use NameFilter to help build public and export
namespaces, and once that lands I will need NameFilter to handle setters
properly.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1576173002 .
2016-01-11 14:28:44 -08:00
Paul Berry
a0fe3827ba
Test and fix serializing a library with a missing part.
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1577973003 .
2016-01-11 13:49:16 -08:00
Konstantin Shcheglov
e299e4f68d
Fix referencing prefixed types from parts.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1575143002 .
2016-01-11 13:44:00 -08:00
John Messerly
8c1e862a90
support generic methods in FunctionExpressionInvocation node
...
fixes part of #25175
R=brianwilkerson@google.com , leafp@google.com
Review URL: https://codereview.chromium.org/1561233003 .
2016-01-11 12:56:07 -08:00
Konstantin Shcheglov
236237724b
Fix for resynthesizing implicit top-level variables.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1577033002 .
2016-01-11 11:13:31 -08:00
Konstantin Shcheglov
65f1aa1ef0
Cache values of fields and lists in summary implementations.
...
This significantly improves analysis time of a trivial HTML app.
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1579663002 .
2016-01-11 09:29:23 -08:00
Paul Berry
0b7c10e2b1
Create a prelinker for summaries.
...
The prelinker is capable of rebuilding the "Prelinked" summary
information based on the "Unlinked" information. We will need to do
this in order to make efficient use of summaries when some files are
changed but not others, or when a pub package is upgraded but another
package that depends on it is left alone.
R=brianwilkerson@google.com , scheglov@google.com
Review URL: https://codereview.chromium.org/1576743002 .
2016-01-11 07:58:21 -08:00
Konstantin Shcheglov
5e326a505c
Remove BuilderContext from summary builders.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1577663002 .
2016-01-10 14:03:41 -08:00
Paul Berry
8a29a99286
Properly set UnlinkedReference.prefixReference in summaries.
...
This information will be necessary when a change to a file forces
summaries to be relinked.
Note that the way we determine the prefix is a bit kludgy: we look at
the export namespaces of the imported libraries and arbitrarily choose
a prefix that points to the given element. This will give subtly
incorrect results if a name is reachable via multiple prefixes,
however this is unlikely to pose a problem in non-contrived use cases.
See the test
`fail_type_reference_to_type_visible_via_multiple_import_prefixes` for
a more detailed explanation of what might go wrong.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1574763002 .
2016-01-09 15:25:40 -08:00
Konstantin Shcheglov
68bf8244f8
Use FlatBuffers for summaries.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1576663002 .
2016-01-09 10:55:00 -08:00
Konstantin Shcheglov
10adc73dab
Include addBool/BoolReader into FlatBuffers.
...
This should simplify the code generated for summary builders/readers.
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1574683002 .
2016-01-09 10:26:32 -08:00
Konstantin Shcheglov
49bc0f4b1d
Remove Int64 support from FlatBuffers.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1570193004 .
2016-01-09 10:20:30 -08:00
Paul Berry
52aa46b3be
Add support for Element.docRange to the summary.
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1564343004 .
2016-01-09 07:05:18 -08:00
Paul Berry
c0bd3091b1
Implement support for Element.documentationComment in summaries.
...
Support for Element.docRange will be added in a future CL.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1573633002 .
2016-01-08 14:35:26 -08:00
danrubel
b852ddc41a
add parser parseAsync flag
...
add new ASYNC_NOT_SUPPORTED error code
update ParseTask to support enableAsync
add AnalysisOptions.enableAsync flag
partially addresses https://github.com/dart-lang/sdk/issues/25373
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/1570183002 .
2016-01-08 15:50:38 -05:00
Konstantin Shcheglov
26c6fc36e4
Support for writing Int32 lists.
...
We have one List<int> in the summaries model, so we need to be able
to write these lists in FlatBuffers.
We could probably make it more general by adding the Writer interface
and use it for writing any lists, as well as replace specialized
methods like addInt32() or addInt8() with a general addScalarField().
But this will make clients code a little bigger. Thoughts?
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1568343002 .
2016-01-08 10:40:58 -08:00
Konstantin Shcheglov
48a4c3d72e
Support for Int64 and fix for the root reference.
...
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1571593002 .
2016-01-08 10:39:31 -08:00
Paul Berry
306625d1bb
Fix computation of documentationComment for class type aliases.
...
R=brianwilkerson@google.com , pquitslund@google.com
Review URL: https://codereview.chromium.org/1567243002 .
2016-01-08 10:37:13 -08:00
Paul Berry
55a3de53dc
Set LibraryElement.entryPoint properly during summary resynthesis.
...
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/1561073007 .
2016-01-08 10:31:59 -08:00
Paul Berry
daf4b9b49b
Fix a few missed references to boundTypeParameters.
...
In 924f2f97b7 , this was renamed to
`typeFormals`.
R=jmesserly@google.com
Review URL: https://codereview.chromium.org/1563383002 .
2016-01-07 15:40:33 -08:00