danrubel@google.com
a2baa0f2ba
remove unused imports
...
BUG=
R=paulberry@google.com
Review URL: https://codereview.chromium.org//962323002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44104 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-27 21:09:29 +00:00
scheglov@google.com
8655d606da
Fix for the change/save/undo race condition.
...
As we found out, it is not safe to compare file modification times.
On some OSs, such as OSX with its HFS+ file modification time accuracy is just 1 second,
and it is quite possible that a file is modified more than once in 1 second.
R=brianwilkerson@google.com , paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org//961823004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44080 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-26 22:32:49 +00:00
brianwilkerson@google.com
5a4919c270
Add instrumentation (issue 22572)
...
R=paulberry@google.com
Review URL: https://codereview.chromium.org//956103002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44071 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-26 19:54:36 +00:00
paulberry@google.com
1af1d868bd
Use an interning table to compare and hash FileBasedSource objects.
...
Speeds up analysis by about 8%.
Note: the interning table uses both the file path and the URI to
distinguish FileBasedSource objects. This should eliminate the
strange behaviors we would see in the rare case where a single URI
would get associated with multiple file paths (see dartbug.com/22555).
The interning table is never flushed over the lifetime of the
application. In practice this should not be a problem, because it
only contains one entry per filename/URI, and the total number of
filenames/URIs analyzed during the course of execution should always
be small.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//954063002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44026 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-25 18:10:59 +00:00
brianwilkerson@google.com
bb2b7ee9bb
Fix for issue 22560
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//950303004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44014 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-25 01:46:25 +00:00
scheglov@google.com
209fcdf1d7
Merge notifications computing into the 'notices' tag.
...
Also cover incremental analysis with its own tag.
R=brianwilkerson@google.com , paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org//956623006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44013 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-25 01:42:26 +00:00
paulberry@google.com
ba818ae5e1
Add more user tags to help trackdown analysis server perf bottlenecks.
...
R=danrubel@google.com
Review URL: https://codereview.chromium.org//928073003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44008 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-24 22:59:34 +00:00
scheglov@google.com
9581e77f58
Replace try/finally with PerformanceTag.makeCurrentWhile().
...
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//954013002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44004 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-24 22:33:55 +00:00
scheglov@google.com
12ccb77c10
Add more performance tags.
...
This reduces amount of "unknown" time to less than 1%.
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//951423002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44000 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-24 21:47:09 +00:00
brianwilkerson@google.com
eeb22c5ec2
Improved doc comments
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//955683003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43999 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-24 21:45:10 +00:00
brianwilkerson@google.com
12d8bfb8e3
Use direct lookup rather than iteration
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//952913003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43996 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-24 20:10:00 +00:00
brianwilkerson@google.com
66ec79e750
Fix exception handling
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//952013003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43995 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-24 20:01:51 +00:00
paulberry@google.com
d63cdb0c78
Fix a hint in resolver.dart.
...
R=scheglov@google.com , sigmund@google.com
Review URL: https://codereview.chromium.org//951543003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43970 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-23 18:44:52 +00:00
brianwilkerson@google.com
54bf758021
Fix issue 22525
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//950613003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43960 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-23 16:16:49 +00:00
sigmund@google.com
f2ccdbd73d
Minor changes in analyzer to make it easier to extend
...
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//924943010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43934 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-20 22:23:27 +00:00
scheglov@google.com
946d56198e
Fix for searching constructor references.
...
Currently we record constructor declarations and SearchEngine returns them as "references".
But it is not quite a reference, and it is used only as a way to get name range.
With this change to ConstructorElement we don't need to have these artificial references.
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//946023003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43932 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-20 22:10:30 +00:00
paulberry@google.com
c845e7cd9a
Change equality comparison for FileBasedSource to use URI.
...
Previously, we considered two FileBasedSources to be equal if they
referred to the same file. As a result, if a given file was
accessible via multiple URI's, only one cache entry would be created
for the file and we would only resolve it once; the elements created
by resolution would be nondeterministic, they would refer to the file
via whatever source happened to be used to analyze it first. Worse
yet, incremental analysis might cause some of the elements in the file
to later be replaced by elements that would refer to the file via a
different source, resulting in confusing errors.
BUG=dartbug.com/22030
R=scheglov@google.com
Review URL: https://codereview.chromium.org//944493002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43888 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-19 19:15:50 +00:00
scheglov@google.com
4e7ecb1103
Issue 22409. Restore recognizing string concatenation in const expressions.
...
R=brianwilkerson@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=22409
https://code.google.com/p/dart/issues/detail?id=21000
Review URL: https://codereview.chromium.org//940853002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43879 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-19 15:35:54 +00:00
scheglov@google.com
eb3c24c089
Mask ResolvableLibrary hashCode.
...
We create these objects often, so in theory we may overflowing the smi limit.
I wonder if extracting a mixin would be as effective and help to share code.
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//936823002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43852 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-18 19:43:36 +00:00
scheglov@google.com
4e34c0d247
Generate artificial hashCode for often used classes.
...
By avoiding calling Object.hashCode we analyze about 1% faster.
R=brianwilkerson@google.com , paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org//934113002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43832 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-18 01:12:43 +00:00
brianwilkerson@google.com
0e73ada9c2
Use package: URIs for files in lib
...
R=paulberry@google.com
Review URL: https://codereview.chromium.org//914373004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43827 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-17 22:47:34 +00:00
paulberry@google.com
5090dd0228
In analyzer, track time spent computing library cycles.
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//935673002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43826 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-17 22:38:23 +00:00
brianwilkerson@google.com
298747c23e
Add properties to the element tree
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//934603003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43801 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-16 21:41:50 +00:00
scheglov@google.com
d305f5225d
Constant top-level variables should not have setters.
...
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//930703002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43793 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-16 05:36:13 +00:00
brianwilkerson@google.com
c602cec2e4
Remove unnecessary state transitions
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//927903002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43789 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-14 18:07:27 +00:00
zra@google.com
74245deeac
Adds a repeatable --url_mapping flag to dartanalyzer
...
If a Dart file does an import that is 'strange', this flag
allows the imported URI to be understood by the analyzer
so long as an explicit mapping of the URI to an absolute
path to a .dart file is supplied with this flag.
For example, a custom embedding of the Dart VM may refer
to non-SDK libraries through its own URI scheme, e.g.
import 'strange:things';
With the flag and Uri resolver added in this CL, the
analyzer can find the Dart source for 'strange:things':
dartanalyzer ... --url_mapping 'strange:things,/path/to/strange/things.dart'
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//897593005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43788 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-14 07:19:15 +00:00
scheglov@google.com
41ea78aeed
Use better hash computer.
...
This gives us another 2% of performance.
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//928613002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43779 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-13 20:54:28 +00:00
scheglov@google.com
c7c2b4584b
Replace using runtimeType with 'is'.
...
This speeds up initial analysis of analyzer + analysis_server on about 4%.
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//922383002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43773 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-13 19:16:49 +00:00
paulberry@google.com
4a5680aec8
Visit async and core library dependencies when computing library cycles.
...
Previously, we would create the Library objects for the core and async
libraries before calling _computeLibraryDependencies(). As a result,
_computeLibraryDependencies() would skip those libraries when
computing dependencies. Normally this was not a problem, because the
dependencies surrounding the core and async libraries are so richly
intertwined that all of the necessary files got included in the cycle
anyhow. However if the starting point of analysis was the
"dart:async" library, some files would be missed entirely, leading to
bogus warnings.
The solution is to let _computeLibraryDependencies() create all the
Library objects, even for the core and async libraries; this way it
won't skip any dependencies.
BUG=dartbug.com/22415
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//921213002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43772 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-13 18:52:39 +00:00
paulberry@google.com
056909e4a7
Rework analysis server performance measurement code.
...
This change has the following advantages:
- We now keep track of the amount of time spent doing unknown
activities using its own timer.
- Several pieces of analysis server functionality are now tracked
(previously we only tracked time spent inside the "analyzer"
package).
- The set of all performance timers is tracked in PerformanceTag.all
so that new timers can be added without having to update the code
that prints out timing measurements.
- Performance measurement code has been integrated with Observatory
"user tags", so that the same categories measured by the analysis
server also show up in the VM profiler view.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//918383002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43745 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 23:54:49 +00:00
scheglov@google.com
86cfaee2ed
Issue 20050. Show corrections for errors.
...
R=brianwilkerson@google.com , danrubel@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=20050
Review URL: https://codereview.chromium.org//923623002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43736 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 19:17:13 +00:00
brianwilkerson@google.com
01d3621fa3
Stop re-analyzing everything when adding a file
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//909493004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43734 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 19:03:00 +00:00
brianwilkerson@google.com
d7a69a2912
Flush entries for unreferenced sources
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//924563002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43730 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 17:50:40 +00:00
brianwilkerson@google.com
0efb52aa0f
More complete state transition data
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//916973002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43700 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 22:04:51 +00:00
scheglov@google.com
303d94e89d
Add SourceEntry.CONTENT_ERRORS data descriptor.
...
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//914283002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43698 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 21:04:18 +00:00
scheglov@google.com
84655a3ad3
Report an error on Dart Source reading exception.
...
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//909373003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43694 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 18:22:27 +00:00
paulberry@google.com
be3c32b38b
Fix typo in error message.
...
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//917783002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43685 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 15:17:44 +00:00
brianwilkerson@google.com
52af26ea3d
Minimal initial performance reporting
...
R=paulberry@google.com
Review URL: https://codereview.chromium.org//913853002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43672 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 23:09:40 +00:00
scheglov@google.com
9aaa9a6a99
Use ExitDetector.exists(node).
...
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//912023002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43668 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 20:46:47 +00:00
scheglov@google.com
ff4e2bfce1
Issue 22188. Verify that none or all execution flows return.
...
R=brianwilkerson@google.com , paulberry@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=22188
Review URL: https://codereview.chromium.org//871013012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43663 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 19:14:01 +00:00
johnniwinther@google.com
827e265786
Revert "Add sharedfrontend package"
...
This reverts commit r43635.
BUG=
Review URL: https://codereview.chromium.org//914613002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43637 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 11:32:18 +00:00
johnniwinther@google.com
d7118339b5
Add sharedfrontend package
...
- initial element model includes Element, LibraryElement and ClassElement
- AccessSemantics moved to sharedfrontend to be utilized from both analyzer2dart and dart2js.
BUG=
R=brianwilkerson@google.com , paulberry@google.com
Review URL: https://codereview.chromium.org//898113002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43635 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 10:44:56 +00:00
paulberry@google.com
6a869d5e34
Fix inference of the static type of an async function literal.
...
This implements the spec change currently under review here:
https://codereview.chromium.org/902703003
R=scheglov@google.com
Review URL: https://codereview.chromium.org//905293003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43613 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 21:21:36 +00:00
scheglov@google.com
d7a2309a92
Fix for incremental resolution in case of inserting a new token into elegant comments.
...
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//913573002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43607 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 19:12:04 +00:00
brianwilkerson@google.com
ebad629834
Handle exception getting modification stamp
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//913513003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43603 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 17:19:00 +00:00
pquitslund@google.com
e3a0244b58
Tweak to error formatter to fix LINT display name.
...
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//902383002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43582 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-08 21:01:35 +00:00
brianwilkerson@google.com
c2d3ff3b95
Handle exception and clean-up code
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//907483004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43563 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 19:19:55 +00:00
brianwilkerson@google.com
d682527d1e
Fix a stack overflow
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//908603002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43559 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 18:00:16 +00:00
paulberry@google.com
cb0f691bb6
Fix analyzer type checking of "await" expressions.
...
This requires implementing the "flatten()" rule defined in the spec;
this rule also needs to be applied to static type checking of return
types in async functions.
BUG=dartbug.com/22291, dartbug.com/22293
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//904743003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43537 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 03:32:57 +00:00
pquitslund@google.com
ac08a9a570
Async/await/yield[*] support for dart_fmt
...
R=brianwilkerson@google.com , paulberry@google.com , scheglov@google.com
Review URL: https://codereview.chromium.org//882233004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43529 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 22:37:23 +00:00