| Index: pkg/analyzer/test/generated/hint_code_test.dart | 
| diff --git a/pkg/analyzer/test/generated/hint_code_test.dart b/pkg/analyzer/test/generated/hint_code_test.dart | 
| index e384012bee17432a83dda2bcdde52074cff5667b..77b127fe4ca8a12414c1c1879e0015a818363cb4 100644 | 
| --- a/pkg/analyzer/test/generated/hint_code_test.dart | 
| +++ b/pkg/analyzer/test/generated/hint_code_test.dart | 
| @@ -21,33 +21,6 @@ main() { | 
|  | 
| @reflectiveTest | 
| class HintCodeTest extends ResolverTestCase { | 
| -  void test_deadCode_statementAfterRethrow() { | 
| -    Source source = addSource(r''' | 
| -f() { | 
| -  try { | 
| -    var one = 1; | 
| -  } catch (e) { | 
| -    rethrow; | 
| -    var two = 2; | 
| -  } | 
| -}'''); | 
| -    computeLibrarySourceErrors(source); | 
| -    assertErrors(source, [HintCode.DEAD_CODE]); | 
| -    verify([source]); | 
| -  } | 
| - | 
| -  void test_deadCode_statementAfterThrow() { | 
| -    Source source = addSource(r''' | 
| -f() { | 
| -  var one = 1; | 
| -  throw 'Stop here'; | 
| -  var two = 2; | 
| -}'''); | 
| -    computeLibrarySourceErrors(source); | 
| -    assertErrors(source, [HintCode.DEAD_CODE]); | 
| -    verify([source]); | 
| -  } | 
| - | 
| void fail_isInt() { | 
| Source source = addSource("var v = 1 is int;"); | 
| computeLibrarySourceErrors(source); | 
| @@ -553,6 +526,36 @@ f(v) { | 
| verify([source]); | 
| } | 
|  | 
| +  void test_deadCode_statementAfterExitingIf_returns() { | 
| +    Source source = addSource(r''' | 
| +f() { | 
| +  if (1 > 2) { | 
| +    return; | 
| +  } else { | 
| +    return; | 
| +  } | 
| +  var one = 1; | 
| +}'''); | 
| +    computeLibrarySourceErrors(source); | 
| +    assertErrors(source, [HintCode.DEAD_CODE]); | 
| +    verify([source]); | 
| +  } | 
| + | 
| +  void test_deadCode_statementAfterRethrow() { | 
| +    Source source = addSource(r''' | 
| +f() { | 
| +  try { | 
| +    var one = 1; | 
| +  } catch (e) { | 
| +    rethrow; | 
| +    var two = 2; | 
| +  } | 
| +}'''); | 
| +    computeLibrarySourceErrors(source); | 
| +    assertErrors(source, [HintCode.DEAD_CODE]); | 
| +    verify([source]); | 
| +  } | 
| + | 
| void test_deadCode_statementAfterReturn_function() { | 
| Source source = addSource(r''' | 
| f() { | 
| @@ -619,15 +622,12 @@ f() { | 
| verify([source]); | 
| } | 
|  | 
| -  void test_deadCode_statementAfterExitingIf_returns() { | 
| +  void test_deadCode_statementAfterThrow() { | 
| Source source = addSource(r''' | 
| f() { | 
| -  if (1 > 2) { | 
| -    return; | 
| -  } else { | 
| -    return; | 
| -  } | 
| var one = 1; | 
| +  throw 'Stop here'; | 
| +  var two = 2; | 
| }'''); | 
| computeLibrarySourceErrors(source); | 
| assertErrors(source, [HintCode.DEAD_CODE]); | 
| @@ -1044,6 +1044,23 @@ main() { | 
| verify([source]); | 
| } | 
|  | 
| +  void test_invalidUseOfProtectedMember_closure() { | 
| +    Source source = addSource(r''' | 
| +import 'package:meta/meta.dart'; | 
| + | 
| +class A { | 
| +  @protected | 
| +  int a() => 42; | 
| +} | 
| +void main() { | 
| +  var leak = new A().a; | 
| +  print(leak); | 
| +}'''); | 
| +    computeLibrarySourceErrors(source); | 
| +    assertErrors(source, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]); | 
| +    verify([source]); | 
| +  } | 
| + | 
| void test_invalidUseOfProtectedMember_field() { | 
| Source source = addSource(r''' | 
| import 'package:meta/meta.dart'; | 
| @@ -1105,23 +1122,6 @@ abstract class B implements A { | 
| verify([source]); | 
| } | 
|  | 
| -  void test_invalidUseOfProtectedMember_closure() { | 
| -    Source source = addSource(r''' | 
| -import 'package:meta/meta.dart'; | 
| - | 
| -class A { | 
| -  @protected | 
| -  int a() => 42; | 
| -} | 
| -void main() { | 
| -  var leak = new A().a; | 
| -  print(leak); | 
| -}'''); | 
| -    computeLibrarySourceErrors(source); | 
| -    assertErrors(source, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]); | 
| -    verify([source]); | 
| -  } | 
| - | 
| void test_invalidUseOfProtectedMember_getter() { | 
| Source source = addSource(r''' | 
| import 'package:meta/meta.dart'; | 
| @@ -1184,6 +1184,29 @@ class B { | 
| verify([source]); | 
| } | 
|  | 
| +  void test_invalidUseOfProtectedMember_method_OK() { | 
| +    // https://github.com/dart-lang/linter/issues/257 | 
| +    Source source = addSource(r''' | 
| +import 'package:meta/meta.dart'; | 
| + | 
| +typedef void VoidCallback(); | 
| + | 
| +class State<E> { | 
| +  @protected | 
| +  void setState(VoidCallback fn) {} | 
| +} | 
| + | 
| +class Button extends State<Object> { | 
| +  void handleSomething() { | 
| +    setState(() {}); | 
| +  } | 
| +} | 
| +'''); | 
| +    computeLibrarySourceErrors(source); | 
| +    assertNoErrors(source); | 
| +    verify([source]); | 
| +  } | 
| + | 
| void test_invalidUseOfProtectedMember_OK_1() { | 
| Source source = addSource(r''' | 
| import 'package:meta/meta.dart'; | 
|  |