Commit Graph

52 Commits

Author SHA1 Message Date
Florian Loitsch 9a0ccfc092 Deprecate the use of Function as a class.
Shows a hint when `Function` is used:
- as a class name,
- in an extends clause,
- in a with clause.

The `Function` may or may not point to the core's `Function`. All uses of `Function` in these contexts are deprecated.

R=brianwilkerson@google.com

Committed: https://github.com/dart-lang/sdk/commit/4e6e72b0b0bc1558ea0ba695363c6dc8bf9433f5

Reverted: https://github.com/dart-lang/sdk/commit/3f871ae76f5269b50e531c61038727a074301990
Review-Url: https://codereview.chromium.org/2643073002 .
2017-01-23 17:34:09 +01:00
Florian Loitsch 5616882833 Revert "Deprecate the use of Function as a class."
This reverts commit 4e6e72b0b0.

BUG=

Review-Url: https://codereview.chromium.org/2650763002 .
2017-01-23 17:09:16 +01:00
Florian Loitsch 4e6e72b0b0 Deprecate the use of Function as a class.
Shows a hint when `Function` is used:
- as a class name,
- in an extends clause,
- in an implements clause,
- in a with clause.

The `Function` may or may not point to the core's `Function`. All uses of `Function` in these contexts are deprecated.

R=brianwilkerson@google.com

Review-Url: https://codereview.chromium.org/2643073002 .
2017-01-23 16:39:04 +01:00
Konstantin Shcheglov 0160332713 Issue 28027. Move Null to the bottom in the Analyzer.
R=brianwilkerson@google.com, paulberry@google.com
BUG= https://github.com/dart-lang/sdk/issues/28027

Review-Url: https://codereview.chromium.org/2638183002 .
2017-01-18 11:15:11 -08:00
Konstantin Shcheglov 24f61aef20 Report HintCode.MISSING_RETURN for async functions with return type that matters.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review-Url: https://codereview.chromium.org/2630023003 .
2017-01-15 09:51:26 -08:00
Konstantin Shcheglov 9d240f8fb1 Replace reset() arguments with resetWith() invocation.
R=paulberry@google.com
BUG=

Review-Url: https://codereview.chromium.org/2627083003 .
2017-01-11 13:37:22 -08:00
Konstantin Shcheglov 799296e92b Extract x_Driver tests that time out on Windows bots.
R=paulberry@google.com
BUG=

Review-Url: https://codereview.chromium.org/2623253003 .
2017-01-11 11:49:34 -08:00
Konstantin Shcheglov 73e7da4976 Run the most of error generating tests with the new analysis driver.
Some tests have more failures than I feel comfortable marking as failing.
I will triage them in following CLs.

StaticTypeAnalyzer2Test
StrictModeTest
StrongModeDownwardsInferenceTest
StrongModeStaticTypeAnalyzer2Test
TypePropagationTest

R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2628743002 .
2017-01-11 08:25:21 -08:00
Konstantin Shcheglov 65ff5b5e50 Explicitly compute analysis results for sources to check errors.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2625783002 .
2017-01-10 12:58:58 -08:00
Konstantin Shcheglov 5a3afed30f Make error producing tests ansynchronous.
This is another preliminary test to run these tests with the new
analysis driver. Especially when we're going to replace the task based
analysis implementation with another one.

R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2624793002 .
2017-01-10 10:33:44 -08:00
Konstantin Shcheglov b5c5c1c222 Remove computeLibrarySourceErrors().
All errors are computed and validated in assertErrors().

In a 3 tests assertErrors() for the library was mved before the call
for a part to ensure library/part link establishment.

R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2626653002 .
2017-01-10 08:44:48 -08:00
Brian Wilkerson 724ac40b8d Improve error messages and add many corrections
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2426583003 .
2016-10-17 10:40:43 -07:00
Konstantin Shcheglov 5455fd0118 Remove 'initializeTestEnvironment' from 'analyzer'.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2399913002 .
2016-10-06 10:18:54 -07:00
Konstantin Shcheglov 175dad4f15 Switch 'analyzer' to 'package:test' and test_reflective_loader ^0.1.0.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2391423003 .
2016-10-06 08:46:35 -07:00
Brian Wilkerson 154bd389db Fix some failures on the windows bots
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2392793003 .
2016-10-04 08:21:28 -07:00
Konstantin Shcheglov 0223b08a34 Issue 27300. Report HintCode.ABSTRACT_SUPER_MEMBER_REFERENCE. (Land again)
The pkg/analysis_server/test/integration/analysis/error_test was fixed.

R=brianwilkerson@google.com, paulberry@google.com
BUG= https://github.com/dart-lang/sdk/issues/27300

Review URL: https://codereview.chromium.org/2366963002 .
2016-09-23 10:21:21 -07:00
Paul Berry fe2c152ee2 Revert "Issue 27300. Report HintCode.ABSTRACT_SUPER_MEMBER_REFERENCE."
This broke the analyzer bots.  See for example https://build.chromium.org/p/client.dart/builders/analyzer-mac10.11-release-be/builds/337/steps/analysis%20server%20unit%20tests/logs/stdio

This reverts commit 77ba5fd087.

TBR=scheglov@google.com

Review URL: https://codereview.chromium.org/2361393002 .
2016-09-23 05:24:53 -07:00
Konstantin Shcheglov 77ba5fd087 Issue 27300. Report HintCode.ABSTRACT_SUPER_MEMBER_REFERENCE.
There are no positives in analyzer/server, dev_compiler or dart2js.

R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/27300

Review URL: https://codereview.chromium.org/2364733002 .
2016-09-22 14:27:47 -07:00
Brian Wilkerson 6062d5d6bd Fix mustCallSuper to ignore methods from interfaces
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2348383006 .
2016-09-21 08:03:09 -07:00
Brian Wilkerson ecc84b26a4 Break up another large file
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2342733002 .
2016-09-15 07:49:27 -07:00
Konstantin Shcheglov 114fcdb839 Issue 26874. Don't report CAN_BE_NULL_AFTER_NULL_AWARE for members of the Null class.
R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/26874

Review URL: https://codereview.chromium.org/2320573003 .
2016-09-07 09:01:44 -07:00
Konstantin Shcheglov cc6beaf56d Pull in test_reflective_loader 0.0.4 and switch analyzer to it.
There are following changes:

1. DEPS to pull in test_reflective_loader 0.0.4
2. Rename runReflectiveTests() to defineReflectiveTests().
3. Remove analyzer's pkg/analyzer/test/reflective_tests.dart
4. Replace reflective_tests.dart imports with package:test_reflective_loader/test_reflective_loader.dart imports.
5. Sort/format and organize imports in the files with imports changes.
6. Fix for a couple of bugs in analysis_server exposed by the new loader.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2298913003 .
2016-08-31 13:46:39 -07:00
Brian Wilkerson 07850a6562 Remove false positive from override hint
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2228233003 .
2016-08-10 06:12:41 -07:00
Brian Wilkerson 51bda5ac48 Check for missing elements (issue 26987)
R=pquitslund@google.com

Review URL: https://codereview.chromium.org/2196483004 .
2016-07-29 13:19:55 -07:00
Konstantin Shcheglov cc290c1dc0 Fix for false positive in field (not-)overriding.
Fields can also override setters.

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

Review URL: https://codereview.chromium.org/2174423005 .
2016-07-25 22:49:01 -07:00
Konstantin Shcheglov 7808f167ec Issue 26787. Report HintCode.OVERRIDE_ON_NON_OVERRIDING_GETTER for non-overriding fields.
R=pquitslund@google.com, brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/26787

Review URL: https://codereview.chromium.org/2182773002 .
2016-07-25 15:02:27 -07:00
pq 38c132d604 Allow for library access to @protected protected members (linter#254).
R=brianwilkerson@google.com

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

Fixes: https://github.com/dart-lang/linter/issues/254
2016-06-24 15:05:33 -07:00
pq f4c2a0faba Analyzer support for @factory methods (linter#253).
R=brianwilkerson@google.com

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

Fixes: https://github.com/dart-lang/linter/issues/253.
2016-06-24 14:41:00 -07:00
pq c113d65ad4 Don't flag improper @protected access in docs (#26713).
BUG=
R=brianwilkerson@google.com

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

Fixes: https://github.com/dart-lang/sdk/issues/26713
2016-06-16 09:43:05 -07:00
Sam Rawlins 6e58ff0575 Do not error on dead, mandated statements at end of switch cases
BUG=https://github.com/dart-lang/sdk/issues/26673
R=brianwilkerson@google.com, paulberry@google.com

Review URL: https://codereview.chromium.org/2064203002 .
2016-06-15 09:24:32 -07:00
pq 435e38ab77 @required support for super and redirecting cons (#26642).
R=brianwilkerson@google.com

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

Fixes: https://github.com/dart-lang/sdk/issues/26642
2016-06-08 11:19:43 -07:00
pq 8b1440fd2b Fix @protected checks to play nice with generic supers (linter#257).
Fixes: https://github.com/dart-lang/linter/issues/257.

(Pardon the member-sorting churn in `hint_code_test`.)

BUG=
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2045693002 .
2016-06-06 13:14:13 -07:00
pq 8b779f33c0 Fix @protected to include closure references (linter#255).
Generalizes the check for invalid protected access.

R=brianwilkerson@google.com

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

Fixes: https://github.com/dart-lang/linter/issues/255.
2016-06-06 11:43:30 -07:00
pq 5a6c934a0a Fix @protected access check from within defining class (#26614).
Fixes: https://github.com/dart-lang/sdk/issues/26614.

BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/2032363003 .
2016-06-03 09:09:46 -07:00
pq bfd06cbd77 Extend @protected to include implemented interfaces.
Fixes: https://github.com/dart-lang/linter/issues/252.
BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/2031053002 .
2016-06-02 16:13:03 -07:00
Sam Rawlins 38e8d9702b Revert "Revert "If an if or do statement always exits, following statements are dead.""
This reverts commit c0b0c7be81.

BUG=https://github.com/dart-lang/sdk/issues/16420
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/2007933002 .
2016-06-02 15:25:08 -07:00
Konstantin Shcheglov f1bc40923a Report HintCode.UNUSED_FIELD for fields which are referenced in constructor field initializers.
This adds two not false positives in dart2js, and zero to DDC.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2029193003 .
2016-06-02 08:00:22 -07:00
Sam Rawlins c0b0c7be81 Revert "If an if or do statement always exits, following statements are dead."
This reverts commit d7833e1c1f.

BUG=

Review URL: https://codereview.chromium.org/2004223002 .
2016-05-23 15:15:05 -07:00
Sam Rawlins d7833e1c1f If an if or do statement always exits, following statements are dead.
BUG=https://github.com/dart-lang/sdk/issues/16420
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1943443002 .
2016-05-23 13:20:48 -07:00
pq e1fad5cddb Verify that required param constants are accessible outside the declaring lib (#26440).
A test to verify that `required` "details" are accessible in reporting errors found outside of the declaring library.

Follows up on Brian's fix: https://github.com/dart-lang/sdk/commit/23b02bc35112ebb955e006b87b3fbe03c5e071d7.

More context: https://github.com/dart-lang/sdk/issues/26440.

BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1975383002 .
2016-05-13 14:31:40 -07:00
Sam Rawlins 68cadb3e71 Warn about @deprecated positional parameters
BUG=https://github.com/dart-lang/sdk/issues/22975
R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/1936873002 .
2016-05-02 10:34:35 -07:00
Sam Rawlins 2cfa9c4665 @deprecated should work on 'called' objects
BUG=https://github.com/dart-lang/sdk/issues/9470

Example output:

$ cat -n a.dart
     1  class Foo {
     2    Foo foo;
     3
     4    @deprecated
     5    call(String name) {
     6      print("hello $name");
     7    }
     8  }
     9
    10  void main() {
    11    Foo f = new Foo();
    12    f("Thomas");
    13    f.foo = new Foo();
    14    f.foo("Timmy");
    15  }
$ xcodebuild/ReleaseX64/dart-sdk/bin/dartanalyzer a.dart
Analyzing [a.dart]...
[hint] 'Foo.call' is deprecated (/Users/srawlins/code/dart-repo3/sdk/a.dart, line 12, col 3)
[hint] 'Foo.call' is deprecated (/Users/srawlins/code/dart-repo3/sdk/a.dart, line 14, col 3)
2 hints found.

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

Review URL: https://codereview.chromium.org/1922563003 .
2016-04-27 13:40:02 -07:00
Sam Rawlins 7cb775f149 provide MISSING_RETURN on factory constructors
BUG=https://github.com/dart-lang/sdk/issues/17121
R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/1923593002 .
2016-04-27 12:33:03 -07:00
Sam Rawlins 53bf36acdb Add UNDEFINED_HIDDEN_NAME, UNDEFINED_SHOWN_NAME
BUG=https://github.com/dart-lang/sdk/issues/20363

Also https://github.com/dart-lang/sdk/issues/25154, https://github.com/dart-lang/sdk/issues/25672

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1901923002 .
2016-04-20 15:51:50 -07:00
pq 433fd4558d Required params message fix.
Gets rid of the rogue space when no details are provided in the `@Required` constructor.

BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1897293003 .
2016-04-19 11:21:09 -07:00
pq ac48484a07 Support for @JS() validation (#26225).
See: https://github.com/dart-lang/sdk/issues/26225

BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1871103002 .
2016-04-08 13:45:46 -07:00
Sam Rawlins c1963b3995 Add an UNUSED_SHOWN_NAMES hint to the analyzer
BUG=https://github.com/dart-lang/sdk/issues/21030
R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/1863103002 .
2016-04-08 11:44:36 -07:00
pq 6a430d0730 Validation of @required params (#26182).
See: https://github.com/dart-lang/sdk/issues/26182.

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

Review URL: https://codereview.chromium.org/1863803002 .
2016-04-06 06:09:44 -07:00
Konstantin Shcheglov 498c77ef51 Issue dartdoc#1124. Get used elements from directive comments.
R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/dartdoc/issues/1124

Review URL: https://codereview.chromium.org/1850813002 .
2016-03-31 12:42:51 -07:00
Brian Wilkerson 513433d514 Sort analyzer sources
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1843473002 .
2016-03-28 17:41:52 -07:00