Commit Graph

172 Commits

Author SHA1 Message Date
brianwilkerson@google.com 4b4bf1cf08 Constant evaluation support. This fixes most of the open issues related to constants and makes it (theoretically) possible to fix the rest.
R=jwren@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31303 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 21:26:54 +00:00
johnniwinther@google.com 1f1ecff14d Handle @proxy classes in type checker.
BUG=http://dartbug.com/15049
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31011 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-10 09:34:25 +00:00
kustermann@google.com a943ae0ed3 Remove status file entries refering to non-existent files
R=whesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30989 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-09 15:18:24 +00:00
hausner@google.com 2e3b0fd8bf Detect illegal assignable expressions
The AST cannot distinguish between (x) and x. Adding a check
to the VM compiler that detects syntactically illegal assignments
like (x) = 0. The existing checks only analyze the AST so we
didn’t detect some illegal cases.

Looking at the source to detect syntactically illegal left hand
expressions is a bit ugly because we can’t easily look at
previous tokens. This change rewinds the token iterator a few
positions and then moves forward to check whether the last token
of the expression is an identifier or a closing bracket ].

Added new test. We did not have a single test case for this :)

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30904 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-05 18:15:21 +00:00
ngeoffray@google.com ba8dea6bfc Fix crash in dart2js on type literal sends.
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30664 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-26 09:04:36 +00:00
johnniwinther@google.com 8541952510 Implement least upper bound.
As a side-effect disallow multiple inheritance with different type arguments.

R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30661 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-26 08:32:08 +00:00
jwren@google.com fad4adae84 Fix for 11987.
R=brianwilkerson@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30540 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-21 18:59:31 +00:00
scheglov@google.com 83a9ab7fcb Fix analyzer language status files.
TBR

R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30209 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-12 21:29:27 +00:00
scheglov@google.com 9d8ce37bfe New analyzer snapshot.
Also insert empty lines between class and unit members.
Remove some more extra parentheses.

R=brianwilkerson@google.com, devoncarew@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30203 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-12 19:33:57 +00:00
regis@google.com e3da5e16e4 Check type bounds of redirecting factories (issue 14699).
Add tests for malbounded redirecting factories.
Clean up bound checking code and type error reporting code.

R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30177 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-11 22:59:48 +00:00
scheglov@google.com 502341b0dc Issue 14426. Analyzer must warn when a getter & setter pair are not both static or both instance.
https://code.google.com/p/dart/issues/detail?id=14426

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30074 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-07 21:45:28 +00:00
scheglov@google.com f4dabb083a Issue 14748. Name of type alias is a valid const expression.
https://code.google.com/p/dart/issues/detail?id=14748

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30059 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-07 17:56:31 +00:00
scheglov@google.com 704bdfda18 Issue 13787. It is OK to export same element twice.
https://code.google.com/p/dart/issues/detail?id=13787
https://code.google.com/p/dart/issues/detail?id=14772

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30013 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-06 23:49:35 +00:00
scheglov@google.com 6d8be42afd Issue 14766. It is still compile-time error to reference variable from its initializer.
https://code.google.com/p/dart/issues/detail?id=14766

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30002 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-06 21:47:21 +00:00
johnniwinther@google.com 43d31a5a78 Update status+test.
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29901 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-05 12:52:07 +00:00
johnniwinther@google.com 4b297d0819 Make test of malformed types a dynamic type error.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29897 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-05 12:28:39 +00:00
scheglov@google.com 1c548121ca Issue 12694. Fix for parsing 'buildIn() {}' top-level functions.
https://code.google.com/p/dart/issues/detail?id=12694

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29871 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-05 02:09:18 +00:00
jwren@google.com 0c542e6631 Fix for 13493
R=brianwilkerson@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29864 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-05 00:43:38 +00:00
scheglov@google.com 90a22d1043 Triage issue 14471.
https://code.google.com/p/dart/issues/detail?id=14471

It is not the analyzer issue.
Test actually contains static warning.

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29850 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-04 21:58:14 +00:00
scheglov@google.com 90d68907f3 Issue 13023. Fix for parsing 'static int operator = (5);'.
https://code.google.com/p/dart/issues/detail?id=13023

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29847 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-04 21:54:59 +00:00
hausner@google.com 87ad26943c Fix analyzer status
Review URL: https://codereview.chromium.org//58053003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29837 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-04 19:08:05 +00:00
kasperl@google.com 7cd5977b62 Re-land "Search for main in the exported names of the main library, not in the library itself."
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29812 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-04 15:40:57 +00:00
kasperl@google.com 306f78c12b Revert "Re-land "Search for main in the exported names of the main library, not in the library itself.""
This reverts commit 2323a2ca0c702657021f0cb2b532402eafd13d49.

R=johnniwinther@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29810 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-04 15:27:51 +00:00
kasperl@google.com 660e5e5f15 Re-land "Search for main in the exported names of the main library, not in the library itself."
BUG=
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29809 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-04 14:48:52 +00:00
scheglov@google.com f469ae8d07 Issue 13241. Report StaticWarningCode.CONFLICTING_INSTANCE_METHOD_SETTER.
https://code.google.com/p/dart/issues/detail?id=13241

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29787 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-02 20:32:28 +00:00
hausner@google.com c96bc29ab5 Compile time error if name is used before variable is declared
Implement proper semantics if a name has been referenced in a
block and later a variable with that same name is declared.

Fix library code that was wrong.

Add new language test, delete a couple of tests that are
outdated, file co19 bug 649.

Dart2js and dart2dart are not yet implementing these compile-time
errors.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29770 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-01 21:28:31 +00:00
scheglov@google.com 5ebcad09e8 Issue 14653. It is compile-time error to use unresolved identifier for annotation.
https://code.google.com/p/dart/issues/detail?id=14653

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29700 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 21:08:26 +00:00
kasperl@google.com d897d356a9 Update metadata syntax test to check for non-existing constants and type literals (see issue 14647).
R=bak@google.com, hausner@google.com, scheglov@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29667 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 12:57:32 +00:00
lrn@google.com c00d3584d2 Remove implicit_setter_test.
Implicit throwing setters for final fields were reverted from the spec.

R=fschneider@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29660 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 10:22:11 +00:00
scheglov@google.com 5e412b79d2 Issue 14364. Strengthen isDirectSupertypeOf() to check type parameters.
https://code.google.com/p/dart/issues/detail?id=14364

However when we check for isSubType() we need to consider "dynamic" as bottom, i.e. as a subtype of any other type.

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29559 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 15:58:00 +00:00
johnniwinther@google.com 70e0cd4207 Support checking of malbounded types.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29531 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 11:26:37 +00:00
scheglov@google.com 4382a55d89 Issue 14358. Check for assignment in any close.
https://code.google.com/p/dart/issues/detail?id=14358

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29484 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-29 20:30:01 +00:00
johnniwinther@google.com 7efd78204a Fix the more specific relation.
BUG=http://dartbug.com/14358,http://dartbug.com/14362,http://dartbug.com/14364
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29446 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-29 13:19:08 +00:00
scheglov@google.com 4587f57f5d Compile time error was removed for variable reference in its initializer.
It was removed in https://codereview.chromium.org//27054005

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29394 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-28 20:49:42 +00:00
kustermann@google.com c76242a7b7 Remove passing tests in the status file for the analyzer in --checked mode
TBR=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29353 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-28 11:56:35 +00:00
scheglov@google.com 90f8469aa0 Issue 14306. It is compile-time error to reference non-constructor in const redirecting constructor.
https://code.google.com/p/dart/issues/detail?id=14306

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29337 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-28 00:00:44 +00:00
regis@google.com e9b01ccf7b Disallow explicit parameter default values in redirecting factory (issue 13662).
Add language test.
Fix usage in core lib.

R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29298 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-25 23:02:48 +00:00
scheglov@google.com 69d9d6ced6 VM and dart2js both support ne mixin syntax.
https://code.google.com/p/dart/issues/detail?id=13907

It seems that packages and other code were migrate too.
So, we can turn on error for the old syntax.

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29211 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 21:42:07 +00:00
scheglov@google.com fb757f6c82 Issue 14388. Remove implicit setters for final fields.
https://code.google.com/p/dart/issues/detail?id=14388

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29196 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 19:07:11 +00:00
scheglov@google.com 2b2112bb68 Issue 13807. Support for function types promotion.
https://code.google.com/p/dart/issues/detail?id=13807

Also related language tests triage.

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29146 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 03:16:36 +00:00
scheglov@google.com de23067621 Issue 13807. Support for type promotion rules.
https://code.google.com/p/dart/issues/detail?id=13807

Basic version.
No union types (and hopefully no need for them).
So, language tests should be triaged.
No support for ?: yet.

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29095 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-23 16:09:11 +00:00
johnniwinther@google.com 12acea6f99 Check const expressions for malformed types.
BUG=http://dartbug.com/14299
R=ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29080 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-23 13:01:30 +00:00
scheglov@google.com bfe1b18ed3 Issue 13906. It is still error when typedef references itself using type variable bounds.
https://code.google.com/p/dart/issues/detail?id=13906

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29010 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-22 17:07:45 +00:00
hausner@google.com e7255e091a Do not generate a compile-time error if there is more than one catch-all clause
This includes catch clauses with malformed types, which are essentially
catch-all clauses.

The spec does not mandate such a compile-time error. (It probably did a long
time ago.)

Fixes issue 8601, 12159, 13019

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28999 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-22 15:44:28 +00:00
brianwilkerson@google.com 5fcd36b0b9 Fix issue 13575
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28953 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-21 21:15:24 +00:00
brianwilkerson@google.com 0186372754 Fix issue 12654
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28864 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-18 17:36:32 +00:00
johnniwinther@google.com c7a9f21e26 Update check for cyclic typedefs.
BUG= http://dartbug.com/9792, http://dartbug.com/11986
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28786 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-17 07:05:18 +00:00
scheglov@google.com b7283dfe33 Issue 14133. Tweak test.
https://code.google.com/p/dart/issues/detail?id=14133

R=brianwilkerson@google.com, johnniwinther@google.com, regis@google.com, rmacnak@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28745 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-16 19:16:44 +00:00
scheglov@google.com ba9c5fbd25 Report CONFLICTING_DART_IMPORT when dart: import is implicitly hidden.
R=brianwilkerson@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28739 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-16 17:41:59 +00:00
rmacnak@google.com 15bc17777f Add mirror tests for generic interfaces. Add base-language test for malbounded interfaces.
B=http://dartbug.com/14118
R=gbracha@google.com, regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28703 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-16 01:06:56 +00:00