Commit Graph

5559 Commits

Author SHA1 Message Date
kasperl@google.com 3f478e5a87 Fix issue 11398 by making sure we look at mixin applications
when trying to figure out if an element can be hit with a
typed selector.

R=ngeoffray@google.com
BUG=http://dartbug.com/11398

Review URL: https://codereview.chromium.org//17583007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24315 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 09:27:38 +00:00
johnniwinther@google.com 28acc13c57 Update status files.
BUG=
R=karlklose@google.com

Review URL: https://codereview.chromium.org//17573005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24313 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 09:09:07 +00:00
johnniwinther@google.com 2432ac4647 Support runtime check of function types.
New scheme for checking function subtyping:

1) Generate an $isX predicate on objects that are statically known subtypes of a given function type
2) Generate a signature encoding the whole function type on objects when a runtime check is needed.

A check succeeds if either 1) or 2) is true.

If too many predicates are needed a signature is generated instead, and if a signature is needed, no predicates are generated. Maximum number of predicates is currently determined by the magic constant MAX_FUNCTION_TYPE_PREDICATES in emitter.dart.

R=karlklose@google.com

Committed: https://code.google.com/p/dart/source/detail?r=24286

Review URL: https://codereview.chromium.org//12334070

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24309 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 06:58:55 +00:00
johnniwinther@google.com 90bf6203ee Revert "Support runtime check of function types."
This reverts commit r24286.

BUG=

Review URL: https://codereview.chromium.org//17413013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24288 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 14:02:47 +00:00
johnniwinther@google.com 2ce76ed94a Support runtime check of function types.
New scheme for checking function subtyping:

1) Generate an $isX predicate on objects that are statically known subtypes of a given function type
2) Generate a signature encoding the whole function type on objects when a runtime check is needed.

A check succeeds if either 1) or 2) is true.

If too many predicates are needed a signature is generated instead, and if a signature is needed, no predicates are generated. Maximum number of predicates is currently determined by the magic constant MAX_FUNCTION_TYPE_PREDICATES in emitter.dart.

R=karlklose@google.com

Review URL: https://codereview.chromium.org//12334070

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24286 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 13:35:56 +00:00
fschneider@google.com 48555c83ac Back out r24266 to investigate dartium test failure.
TBR=kmillikin@google.com

Review URL: https://codereview.chromium.org//17074003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24284 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 11:56:32 +00:00
fschneider@google.com ab1981b421 Optimizing noSuchMethod invocation with no arguments.
On each call that triggers a noSuchMethod invocation we 
attach a custom dispatch function that allocates the 
invocation object and invokes noSuchMethod. This dispatcher
is compiled and optimized like a normal Dart function.

Similar to method-extractors, these implicit dispatchers
do not show up as normal functions.

As a first step this CL only handles invocations of getters
and methods with no like o.foo or o.foo().  This CL gives
a >25x speedup of such noSuchMethod invocations. Calls with
multiple arguments still go through the slow path.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//17315008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24266 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 07:31:51 +00:00
ngeoffray@google.com 54e2031f1b Fix a bug in how we deal HTypeConversion during type propagation: we can only convert to int if the input is int or null.
R=kasperl@google.com

Review URL: https://codereview.chromium.org//17003004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24230 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 14:10:52 +00:00
karlklose@google.com 28d5718b86 Add type arguments to constants.
R=ngeoffray@google.com

Review URL: https://codereview.chromium.org//16549004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24223 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 12:52:12 +00:00
karlklose@google.com c026d59c27 Fix type variables in closures.
BUG=dartbug.com/11258
R=johnniwinther@google.com, ngeoffray@google.com

Review URL: https://codereview.chromium.org//17262003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24217 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 11:35:44 +00:00
kmillikin@google.com 632ac9f2c9 Fix a bug in graph construction for for loops.
A refactoring in SVN r24088 introduced a bug in for loops.  Loops with
continue in the body and an empty update expression list will lose the
edge from the continue to the loop entry.

R=fschneider@google.com
BUG=11375

Review URL: https://codereview.chromium.org//17491003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24214 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 10:17:34 +00:00
regis@google.com 68041e2d0d Fix more register allocation bugs in optimized code on ARM.
R=zra@google.com

Review URL: https://codereview.chromium.org//17176004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24191 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-19 16:21:27 +00:00
ngeoffray@google.com b82ae7da0b We have to create different locals when analyzing a closure. Otherwise the inferrer visitor might think an aborting body in a closure aborts the enclosing function.
R=karlklose@google.com

Review URL: https://codereview.chromium.org//16959009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24181 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-19 13:21:08 +00:00
jwren@google.com 7863ffc9d6 Implement new error code: StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//17085003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24155 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-18 18:01:05 +00:00
zra@google.com 8240363b78 Enables co19 tests for SIMMIPS.
Also fixes a bug in division.

R=regis@google.com

Review URL: https://codereview.chromium.org//17312003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24147 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-18 15:51:27 +00:00
scheglov@google.com 36ace54ada Convert isX() methods to isX getter.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//17317002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24115 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 23:02:36 +00:00
jwren@google.com 695e4fe944 Fix status files for analyzer build
Review URL: https://codereview.chromium.org//17066006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24114 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 22:47:46 +00:00
scheglov@google.com 4d79a15ce3 New analyzer_experimental snapshot.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//17249003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24109 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 21:04:45 +00:00
zra@google.com 4a99fabecb Enables language tests for SIMMIPS.
R=regis@google.com

Review URL: https://codereview.chromium.org//17131002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24098 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 15:58:31 +00:00
hausner@google.com 5fe5220636 Fix analyzer status
Review URL: https://codereview.chromium.org//17088006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24053 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-14 21:27:30 +00:00
hausner@google.com 457bb1bdcb Remove support for + prefix in number literals
Also fix some tests that expected + prefix in hex numbers to be illegal. According to our documentation, int.parse() accepts + for numbers in all formats/radixes.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//17103002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24051 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-14 21:16:46 +00:00
srdjan@google.com 21ae6271e7 Last bits for making Maxc SIMARM pass tests.
R=zra@google.com

Review URL: https://codereview.chromium.org//16826010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24013 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-13 21:26:23 +00:00
fschneider@google.com 3208230580 Revert r23330 and r23136 because of a bug with loop invariant code motion.
This CL temporarily remove deoptimzation history which was put in to prevent
repeated deoptimization caused by loop invariant code motion. It caused
illegal code motion under certain conditions.

BUG=https://code.google.com/p/dart/issues/detail?id=11245
TEST=tests/language/licm3_test.dart

Review URL: https://codereview.chromium.org//16844011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23989 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-13 15:52:33 +00:00
fschneider@google.com a43bddcbaf Fix bug in constant propagation with double-equality.
Don't optimize x == x and x != x if x is a double:
x == x is not true, if x == NaN.

TEST=tests/language/arithmetic_test.dart
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//16853005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23955 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-13 09:08:05 +00:00
srdjan@google.com 1affede0be Fix broken Mac SIMARM by adapting the status files. We need to find a better way to handle this :-).
R=zra@google.com

Review URL: https://codereview.chromium.org//16871006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23947 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-13 00:36:12 +00:00
srdjan@google.com 5543ce104c When canonicalize instances check if all fields are canonical. If a field is a non-canonical number or strings, canonicalize it. Otherwise report an error if a field is not canonical.
R=hausner@google.com

Review URL: https://codereview.chromium.org//16780009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23934 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 21:27:37 +00:00
jwren@google.com 5a106e3be7 Fix for 11154
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//16825002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23927 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 19:22:02 +00:00
regis@google.com 264d28744f Fix decoding of object pool access in code patching on ARM.
Fix shift by zero and divide by one on ARM.
Update test status files.

R=zra@google.com

Review URL: https://codereview.chromium.org//16695007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23920 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 16:57:06 +00:00
hausner@google.com 0374dc9b12 Reified metadata in the VM
R=asiva@google.com

Review URL: https://codereview.chromium.org//16780008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23912 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 15:44:57 +00:00
ngeoffray@google.com ddf5372de2 Fix host-checked mode error in dart2js by removing bad assertion.
R=ahe@google.com

Review URL: https://codereview.chromium.org//16802004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23910 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 15:26:23 +00:00
lrn@google.com 9614a603bb Proof-of-concept matchPrefix on Pattern.
Can be used to implement startsWith (and endsWith with a loop).

R=floitsch@google.com

Review URL: https://codereview.chromium.org//15709018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23897 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 08:37:36 +00:00
ahe@google.com 233a218a30 Fix two type errors and dart2dart status.
Review URL: https://codereview.chromium.org//16728005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23894 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 07:38:32 +00:00
asiva@google.com d8ef2ae701 Fix issue 11214 avoid length overflow in String::ConcatAll
R=hausner@google.com

Review URL: https://codereview.chromium.org//16783003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23886 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-11 23:07:57 +00:00
regis@google.com 8f62a87598 Switch code generation on ARM from softfp ABI to hardfp ABI.
Support leaf float runtime calls in ARM simulator.
Enable previously failing tests.

R=zra@google.com

Review URL: https://codereview.chromium.org//16638012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23868 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-11 16:47:01 +00:00
ahe@google.com 3c056867ae Set the supertype to avoid loop.
R=johnniwinther@google.com, karlklose@google.com

Review URL: https://codereview.chromium.org//15911008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23852 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-11 13:47:35 +00:00
scheglov@google.com 0049091064 Clean up analyzer_experimental after Annotation disambiguation.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//16663003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23836 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-10 23:55:54 +00:00
brianwilkerson@google.com 1fe4022b7c Fix for issue 10970
R=scheglov@google.com

Review URL: https://codereview.chromium.org//16690009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23830 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-10 21:33:43 +00:00
ngeoffray@google.com 7cef6db7e3 Rip-off the backend type inferrer.
R=kasperl@google.com

Review URL: https://codereview.chromium.org//16077015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23811 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-10 14:07:34 +00:00
ngeoffray@google.com d89da9a09e Break a cycle in the speculative type propagator by checking if a desired type goes to unknown.
R=kasperl@google.com

Review URL: https://codereview.chromium.org//16737003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23806 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-10 12:27:24 +00:00
scheglov@google.com 6e8d2cf3f4 Don't use 'fail, OK' except of co19
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//16293005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23766 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 19:49:35 +00:00
hausner@google.com e8b07ea4eb Fix dart analyzer status file
Review URL: https://codereview.chromium.org//16306011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23755 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 16:46:15 +00:00
hausner@google.com bf5835d89e BREAKING CHANGE: Remove === and !== in the VM compiler
This change is long overdue. Fixed the last places where we
still used ===.

R=iposva@google.com

Review URL: https://codereview.chromium.org//16398006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23751 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 16:31:33 +00:00
ngeoffray@google.com 2102b3e600 Revert r23735, some tests failed.
Review URL: https://codereview.chromium.org//15978004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23736 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 09:36:56 +00:00
ngeoffray@google.com 9c7e9947e4 Fix https://code.google.com/p/dart/issues/detail?id=11117 by not inlining geenrative constructors and their bodies.
R=kasperl@google.com

Review URL: https://codereview.chromium.org//16049017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23735 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 09:03:46 +00:00
zra@google.com 7718086a5f Fixes small ARM bugs, and updates status files.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//16054007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23718 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 21:52:26 +00:00
scheglov@google.com 80fea8fd8e More fixes for java2dart and status files.
Now DDA passes/fails the same tests as Java version.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//15675016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23705 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 18:13:44 +00:00
jwren@google.com 104baea740 Fix for the broken analyzer-FYI bot
R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//16410006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23697 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 16:57:58 +00:00
lrn@google.com 450e0f64d9 Fix-up RegExp implementations.
VM _JSRegExpMatch didn't have correct "pattern" getter and exposed
too many members. Also didn't allow matching an empty match at the
end of the string with .allMatches.

JS RegExp didn't advance the position correctly after an empty match.

BUG=http://dartbug.com/1301, http://dartbug.com/6554
R=floitsch@google.com, ngeoffray@google.com

Review URL: https://codereview.chromium.org//16206008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23675 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 11:44:04 +00:00
ngeoffray@google.com 4e842914ad Fix 2/2 for bug https://code.google.com/p/dart/issues/detail?id=11117: when inlining a generative constructor, register it to the backend.
R=kasperl@google.com

Review URL: https://codereview.chromium.org//16533002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23666 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 08:58:41 +00:00
ngeoffray@google.com d727cfeda8 Fix bug in SsaConstructionFieldTypes: handle mulitple assignments to the same field.
R=kasperl@google.com

Review URL: https://codereview.chromium.org//15725018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23665 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 08:54:00 +00:00