| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library analyzer.test.generated.hint_code_test; | 5 library analyzer.test.generated.hint_code_test; |
| 6 | 6 |
| 7 import 'package:analyzer/error/error.dart'; | 7 import 'package:analyzer/error/error.dart'; |
| 8 import 'package:analyzer/src/error/codes.dart'; | 8 import 'package:analyzer/src/error/codes.dart'; |
| 9 import 'package:analyzer/src/generated/engine.dart'; | 9 import 'package:analyzer/src/generated/engine.dart'; |
| 10 import 'package:analyzer/src/generated/parser.dart'; | 10 import 'package:analyzer/src/generated/parser.dart'; |
| (...skipping 1989 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2000 @immutable | 2000 @immutable |
| 2001 class A { | 2001 class A { |
| 2002 int x; | 2002 int x; |
| 2003 } | 2003 } |
| 2004 '''); | 2004 '''); |
| 2005 await computeAnalysisResult(source); | 2005 await computeAnalysisResult(source); |
| 2006 assertErrors(source, [HintCode.MUST_BE_IMMUTABLE]); | 2006 assertErrors(source, [HintCode.MUST_BE_IMMUTABLE]); |
| 2007 verify([source]); | 2007 verify([source]); |
| 2008 } | 2008 } |
| 2009 | 2009 |
| 2010 test_mustBeImmutable_instance() async { | |
| 2011 Source source = addSource(r''' | |
| 2012 import 'package:meta/meta.dart'; | |
| 2013 @immutable | |
| 2014 class A { | |
| 2015 static int x; | |
| 2016 } | |
| 2017 '''); | |
| 2018 await computeAnalysisResult(source); | |
| 2019 assertErrors(source, []); | |
| 2020 verify([source]); | |
| 2021 } | |
| 2022 | |
| 2023 test_mustBeImmutable_extends() async { | 2010 test_mustBeImmutable_extends() async { |
| 2024 Source source = addSource(r''' | 2011 Source source = addSource(r''' |
| 2025 import 'package:meta/meta.dart'; | 2012 import 'package:meta/meta.dart'; |
| 2026 @immutable | 2013 @immutable |
| 2027 class A {} | 2014 class A {} |
| 2028 class B extends A { | 2015 class B extends A { |
| 2029 int x; | 2016 int x; |
| 2030 } | 2017 } |
| 2031 '''); | 2018 '''); |
| 2032 await computeAnalysisResult(source); | 2019 await computeAnalysisResult(source); |
| 2033 assertErrors(source, [HintCode.MUST_BE_IMMUTABLE]); | 2020 assertErrors(source, [HintCode.MUST_BE_IMMUTABLE]); |
| 2034 verify([source]); | 2021 verify([source]); |
| 2035 } | 2022 } |
| 2036 | 2023 |
| 2037 test_mustBeImmutable_fromMixin() async { | 2024 test_mustBeImmutable_fromMixin() async { |
| 2038 Source source = addSource(r''' | 2025 Source source = addSource(r''' |
| 2039 import 'package:meta/meta.dart'; | 2026 import 'package:meta/meta.dart'; |
| 2040 @immutable | 2027 @immutable |
| 2041 class A {} | 2028 class A {} |
| 2042 class B { | 2029 class B { |
| 2043 int x; | 2030 int x; |
| 2044 } | 2031 } |
| 2045 class C extends A with B {} | 2032 class C extends A with B {} |
| 2046 '''); | 2033 '''); |
| 2047 await computeAnalysisResult(source); | 2034 await computeAnalysisResult(source); |
| 2048 assertErrors(source, [HintCode.MUST_BE_IMMUTABLE]); | 2035 assertErrors(source, [HintCode.MUST_BE_IMMUTABLE]); |
| 2049 verify([source]); | 2036 verify([source]); |
| 2050 } | 2037 } |
| 2051 | 2038 |
| 2039 test_mustBeImmutable_instance() async { |
| 2040 Source source = addSource(r''' |
| 2041 import 'package:meta/meta.dart'; |
| 2042 @immutable |
| 2043 class A { |
| 2044 static int x; |
| 2045 } |
| 2046 '''); |
| 2047 await computeAnalysisResult(source); |
| 2048 assertErrors(source, []); |
| 2049 verify([source]); |
| 2050 } |
| 2051 |
| 2052 test_mustCallSuper() async { | 2052 test_mustCallSuper() async { |
| 2053 Source source = addSource(r''' | 2053 Source source = addSource(r''' |
| 2054 import 'package:meta/meta.dart'; | 2054 import 'package:meta/meta.dart'; |
| 2055 class A { | 2055 class A { |
| 2056 @mustCallSuper | 2056 @mustCallSuper |
| 2057 void a() {} | 2057 void a() {} |
| 2058 } | 2058 } |
| 2059 class B extends A { | 2059 class B extends A { |
| 2060 @override | 2060 @override |
| 2061 void a() | 2061 void a() |
| (...skipping 1673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3735 Source source = addSource(r''' | 3735 Source source = addSource(r''' |
| 3736 class A { | 3736 class A { |
| 3737 int _f; | 3737 int _f; |
| 3738 } | 3738 } |
| 3739 '''); | 3739 '''); |
| 3740 await computeAnalysisResult(source); | 3740 await computeAnalysisResult(source); |
| 3741 assertErrors(source, [HintCode.UNUSED_FIELD]); | 3741 assertErrors(source, [HintCode.UNUSED_FIELD]); |
| 3742 verify([source]); | 3742 verify([source]); |
| 3743 } | 3743 } |
| 3744 | 3744 |
| 3745 test_unusedField_notUsed_nullAssign() async { |
| 3746 enableUnusedElement = true; |
| 3747 Source source = addSource(r''' |
| 3748 class A { |
| 3749 var _f; |
| 3750 m() { |
| 3751 _f ??= doSomething(); |
| 3752 } |
| 3753 } |
| 3754 doSomething() => 0; |
| 3755 '''); |
| 3756 await computeAnalysisResult(source); |
| 3757 assertNoErrors(source); |
| 3758 verify([source]); |
| 3759 } |
| 3760 |
| 3745 test_unusedField_notUsed_postfixExpr() async { | 3761 test_unusedField_notUsed_postfixExpr() async { |
| 3746 enableUnusedElement = true; | 3762 enableUnusedElement = true; |
| 3747 Source source = addSource(r''' | 3763 Source source = addSource(r''' |
| 3748 class A { | 3764 class A { |
| 3749 int _f = 0; | 3765 int _f = 0; |
| 3750 main() { | 3766 main() { |
| 3751 _f++; | 3767 _f++; |
| 3752 } | 3768 } |
| 3753 }'''); | 3769 }'''); |
| 3754 await computeAnalysisResult(source); | 3770 await computeAnalysisResult(source); |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4007 typedef Foo(); | 4023 typedef Foo(); |
| 4008 main() { | 4024 main() { |
| 4009 Foo foo; | 4025 Foo foo; |
| 4010 foo(); | 4026 foo(); |
| 4011 }'''); | 4027 }'''); |
| 4012 await computeAnalysisResult(source); | 4028 await computeAnalysisResult(source); |
| 4013 assertErrors(source); | 4029 assertErrors(source); |
| 4014 verify([source]); | 4030 verify([source]); |
| 4015 } | 4031 } |
| 4016 | 4032 |
| 4033 test_unusedLocalVariable_isNullAssigned() async { |
| 4034 enableUnusedLocalVariable = true; |
| 4035 Source source = addSource(r''' |
| 4036 typedef Foo(); |
| 4037 main() { |
| 4038 var v; |
| 4039 v ??= doSomething(); |
| 4040 } |
| 4041 doSomething() => 42; |
| 4042 '''); |
| 4043 await computeAnalysisResult(source); |
| 4044 assertErrors(source); |
| 4045 verify([source]); |
| 4046 } |
| 4047 |
| 4017 test_unusedLocalVariable_isRead_notUsed_compoundAssign() async { | 4048 test_unusedLocalVariable_isRead_notUsed_compoundAssign() async { |
| 4018 enableUnusedLocalVariable = true; | 4049 enableUnusedLocalVariable = true; |
| 4019 Source source = addSource(r''' | 4050 Source source = addSource(r''' |
| 4020 main() { | 4051 main() { |
| 4021 var v = 1; | 4052 var v = 1; |
| 4022 v += 2; | 4053 v += 2; |
| 4023 }'''); | 4054 }'''); |
| 4024 await computeAnalysisResult(source); | 4055 await computeAnalysisResult(source); |
| 4025 assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]); | 4056 assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]); |
| 4026 verify([source]); | 4057 verify([source]); |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4235 n() { | 4266 n() { |
| 4236 var a = m(), b = m(); | 4267 var a = m(), b = m(); |
| 4237 } | 4268 } |
| 4238 }'''); | 4269 }'''); |
| 4239 await computeAnalysisResult(source); | 4270 await computeAnalysisResult(source); |
| 4240 assertErrors( | 4271 assertErrors( |
| 4241 source, [HintCode.USE_OF_VOID_RESULT, HintCode.USE_OF_VOID_RESULT]); | 4272 source, [HintCode.USE_OF_VOID_RESULT, HintCode.USE_OF_VOID_RESULT]); |
| 4242 verify([source]); | 4273 verify([source]); |
| 4243 } | 4274 } |
| 4244 } | 4275 } |
| OLD | NEW |