Commit Graph

3038 Commits

Author SHA1 Message Date
jwren@google.com 2ceb165494 Fix for 18468- T << Type where T is a type parameter and Type is the type Type from dart.core
R=brianwilkerson@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35501 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-28 22:10:11 +00:00
jwren@google.com 2388b7d73d Change the error for importing a deferred library with a top-level 'loadLibrary' to being a hint. Also, the logic for checking for the 'loadLibrary' from the element model into the hints phase (BestPracticesVerifier).
R=brianwilkerson@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35495 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-28 20:13:59 +00:00
herhut@google.com 8e34dc3546 Allow a closure to be torn off from itself via .call.
BUG= http://dartbug.com/17474
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35473 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-28 06:46:48 +00:00
srdjan@google.com 2cc32fd9fc Fix types in test.
Review URL: https://codereview.chromium.org//256623010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35456 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-25 23:39:56 +00:00
srdjan@google.com 0c2b0af123 Copy of Issue 231383002 after hard disk crash: First step in improving instance of test for a fixed set of value cids returning different results.
Review URL: https://codereview.chromium.org//258563004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35455 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-25 23:21:12 +00:00
paulberry@google.com 6c000ea2cb New analyzer snapshot, based on r35422.
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35426 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-25 15:18:19 +00:00
johnniwinther@google.com 41d98f8427 Handle generic parameters in synthesized constructor for mixin applications.
BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35359 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-24 08:35:28 +00:00
sigurdm@google.com 00910f947b Insert checks before deferred calls and accesses.
These checks will throw an error if the library was not loaded.

R=floitsch@google.com, johnniwinther@google.com

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

Was reverted by Issue 247863005 r35308 due to failing co19-test

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35355 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-24 07:51:35 +00:00
sigurdm@google.com a31796ed37 Revert "Insert checks before deferred calls and accesses."
This reverts commit r35306.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35308 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 09:23:33 +00:00
sigurdm@google.com 910fffd40d Insert checks before deferred calls and accesses.
These checks will throw an error if the library was not loaded.

R=floitsch@google.com, johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35306 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 07:56:03 +00:00
regis@google.com 98bcbb0dae Do not ignore side effects of a type test or type cast as expression, such
as bound errors in checked mode.
Added tests.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35284 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-22 20:48:13 +00:00
jwren@google.com 4f4507b9ef Fix for 14221/ 15553/ 16673- X isSubtypeOf E now returns false when X is some type and E is a type parameter. This fixes a few issues, but also breaks some assertions (language tests that now have valid warnings from the analyzer).
Additional work will need to be done to fix the language tests, and to investigate the case of X isSubtypeOf E where X is of type Type.

R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35281 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-22 20:07:54 +00:00
scheglov@google.com d1cc18b5e1 New analyzer snapshot.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35270 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-22 17:10:47 +00:00
brianwilkerson@google.com 56ebb916fc Fix for issue 18273
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35260 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-22 14:43:35 +00:00
scheglov@google.com 314fd76902 New analyzer snapshot.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35179 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-18 19:55:14 +00:00
paulberry@google.com b8b2b5e454 Change UNDEFINED_FUNCTION from an error to a warning (issues 18274, 15315).
Also update the spec quote for the error enum, and add a unit test for
a case that wasn't previously covered
(test_undefinedFunction_inImportedLib).

R=brianwilkerson@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35163 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-18 13:44:26 +00:00
paulberry@google.com d2349ec6c4 Fix least upper bound computation for generic types (dartbug.com/15060)
Consider the classes:

class A<T> {}
class B<T> extends A<T>
class C<T> extends A<T>
class D {}
class E {}

When computing the least upper bound of B<D> and C<E>, we were making
two mistakes:

1. When computing superclasses we were using
ClassElement.getSupertype() (which doesn't substitute type arguments),
so B<D> and C<E> were considered to derive from a common type A<T>
rather than distinct types A<D> and A<E>.  A similar problem existed
for interfaces.

2. When intersecting superinterface sets, we were recursively taking
the least upper bound of type arguments, so A<D> and A<E> were
coalesced into A<Object>.  The spec and VM consider A<D> and A<E> to
be unrelated types for the purpose of least upper bound computation,
so the least upper bound should simply be Object.

R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34952 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 23:07:51 +00:00
paulberry@google.com 03d6b2c1aa Allow function literal in string interpolation (dartbug.com/18137).
As of r34903, the VM allows function literals inside string
interpolation, even if the string is inside an initializer.  This
makes the corresponding change to the analyzer.

R=jwren@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34930 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 15:53:37 +00:00
floitsch@google.com 5539ee1908 Update status file.
Review URL: https://codereview.chromium.org//233143002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34923 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 12:39:40 +00:00
floitsch@google.com 69802ab88a Allow closures in string literals in initializer expressions.
BUG= http://dartbug.com/18102
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34919 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 11:50:23 +00:00
iposva@google.com 46ab956f9d - Mark language/function_literals2_test as failing.
Review URL: https://codereview.chromium.org//231983005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34911 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 03:24:23 +00:00
hausner@google.com 10f6318d87 Allow function literals in string interpolation
Interpolated strings in initializers can contain function literals. Add a test case to the function literals test.

Fixes issue 18112.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34903 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 23:42:58 +00:00
hausner@google.com 42a63f1844 Fix dart2js test expectations
Review URL: https://codereview.chromium.org//231953002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34898 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 21:15:42 +00:00
scheglov@google.com e5652e0e90 New analyzer snapshot with MapIterator.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34891 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 20:18:01 +00:00
hausner@google.com 6051d21b5c Conflicting inheritance from superinterface is not a compile time error
Test override_inheritance_mixed was partially wrong.

Inheriting conflicting members from superinterfaces is not a compile time error,
just a static type warning.

See also bug 16137 for details.

R=gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34883 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 17:43:14 +00:00
whesse@google.com 9965700b95 Rename language/disasssemble_test, add to status file.
BUG=dartbug.com/18122
R=kustermann@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34879 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 14:29:48 +00:00
johnniwinther@google.com eaad3cd8b2 Handle type checking of generic compile time constants.
BUG=http://dartbug.com/14348
R=karlklose@google.com

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34871 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 11:14:04 +00:00
johnniwinther@google.com fbe2b8bcc7 Compute frontend/backend specific constants.
BUG=
R=floitsch@google.com, karlklose@google.com

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34862 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 07:40:54 +00:00
sra@google.com 1eab259990 map_literal4_test works only in checked mode
TBR=floitch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34847 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 22:43:11 +00:00
hausner@google.com e86954ab57 Placate analyzer
Review URL: https://codereview.chromium.org//229543002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34846 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 22:40:18 +00:00
hausner@google.com 625b564a4b Fix instance method resolution with abstract accessors and methods
Fix issue 18082

R=gbracha@google.com, regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34845 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 22:14:24 +00:00
sra@google.com 200aad53d1 Redo "Construct literal maps using factory constructor."
TBR=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34841 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 20:51:47 +00:00
sra@google.com aa38fdd15b Revert "Construct literal maps using factory constructor."
TBR=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34837 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 19:54:40 +00:00
sra@google.com ba331a66ce Construct literal maps using factory constructor.
Fixes issue 12891

R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34836 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 19:38:05 +00:00
johnniwinther@google.com eb2cc7614b Revert "Compute frontend/backend specific constants."
This reverts commit r34811.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34816 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 10:18:09 +00:00
johnniwinther@google.com 33c86b9fcd Compute frontend/backend specific constants.
BUG=
R=floitsch@google.com, karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34811 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 07:11:45 +00:00
jwren@google.com 3f6af0d71a Fix for 15979- class aliases now have missing concrete members warnings generated on them.
This CL also changes the ErrorVerifier.visitClassTypeAlias() method to more closely resemble ErrorVerifier.visitClassDeclaration(), a change is made to tests/lib/mirrors/abstract_class_test.dart, and a bug issue is fixed in TestTypeProvider.

Is there a better way to indicate that there is a warning on a line in a test file?

R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34802 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 23:30:05 +00:00
hausner@google.com 2b4e3c7c99 Implement deferred constant support
Compile time constants lose their const-ness if they are referred
to through a deferred prefix. This CL adds a flag to some ast node
types that remembers whether a field or closure was referred to
via a deferred prefix. If so, the compile-time const analysis flags
the value as non-const.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34785 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 17:31:32 +00:00
regis@google.com 91388a5f79 Simplify and fix instantiation of recursive types.
Add tests for non-contractive types.
Cleanup language tests status file.
Enhance tracing of type finalization.

R=hausner@google.com, srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34739 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-04 18:27:53 +00:00
karlklose@google.com db46884a14 Emit classes that are only referenced by type literals.
R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34732 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-04 12:57:14 +00:00
jwren@google.com c38bb2fc79 Fix for 16134- class members modify the set of members that are inherited from superclasses.
As part of this fix, 4 tests now fail in the language test, issue 17983 was created with the bug, and failing tests are also introduced to show the issue.

R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34707 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-03 17:39:04 +00:00
zra@google.com 2fe51715e5 Begins work on ARM64, first assembler test.
Most new code is in constants_arm64.h and
{assembler,disassembler,simulator}_arm64.{h,cc}

The rest of the CL just #def's out tests, modifies status files,
and adds UNIMPLEMENTED functions, etc.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34654 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 17:39:32 +00:00
scheglov@google.com 6da7a82a20 Fix for translation of \!= to \!identical(), but use == and \!= for Enum.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34636 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 03:09:22 +00:00
jwren@google.com 7ee7453157 Fix for 16133.
R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34603 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-01 17:28:31 +00:00
hausner@google.com b36457263a Deferred prefix support in metadata
Deferred prefixes are never ok in metadata, since metadata is required
to be compile time constant.

R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34601 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-01 16:11:28 +00:00
karlklose@google.com dfc000bd0c Adjust dart2dart test expectations after r34567.
R=sigurdm@google.com,hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34586 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-01 07:59:01 +00:00
hausner@google.com 18f8f69400 Fix analyzer test expectations
Deferred loading not yet supported by analyzer.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34568 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-31 18:24:42 +00:00
hausner@google.com 5ac76b37e9 Test for deferred prefix dependent code invalidation
Checks that an optimized method that contains code referring
to an unloaded prefix is properly invalidated.

R=iposva@google.com, srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34567 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-31 18:15:31 +00:00
hausner@google.com ed24226376 Support deferred library prefix syntax
First step towards deferred library support:
- Parse the “deferred as” import clause.
- Implement p.loadLibrary() which returns a future that
  completes when the library is loaded.
- Treat type annotations of deferred types as malformed.
- Throw NoSuchMethodError when calling functions from
  unloaded libraries.
- Libraries are still read synchronously, but items in the
  library won’t be visible through the deferred prefix until
  the future returned by loadLibrary() completes.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34481 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-27 21:20:47 +00:00
karlklose@google.com b34d784129 Correctly recognize type literals in literal lists and maps in an invocation context.
R=johnniwinther@google.com
BUG= http://dartbug.com/17777

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34464 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-27 07:40:13 +00:00