Merge pull request #1730 from dart-lang/update_spelunker

make spelunking featureSet aware
diff --git a/lib/src/ast.dart b/lib/src/ast.dart
index 98ea0b0..c0f4c81 100644
--- a/lib/src/ast.dart
+++ b/lib/src/ast.dart
@@ -10,7 +10,6 @@
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/error/listener.dart';
 import 'package:analyzer/file_system/file_system.dart';
-import 'package:analyzer/file_system/physical_file_system.dart';
 import 'package:analyzer/src/error/codes.dart'; // ignore: implementation_imports
 import 'package:analyzer/src/generated/resolver.dart'; // ignore: implementation_imports
 import 'package:linter/src/analyzer.dart';
@@ -102,9 +101,12 @@
     return false;
   }
 
-  // TODO(devoncarew): Change to using the resource provider on the context
-  // when that is available.
-  ResourceProvider resourceProvider = PhysicalResourceProvider.INSTANCE;
+  final resourceProvider =
+      compilationUnit?.declaredElement?.session?.resourceProvider;
+  if (resourceProvider == null) {
+    return false;
+  }
+
   File file = resourceProvider.getFile(fullName);
   Folder folder = file.parent;
 
diff --git a/lib/src/rules/unnecessary_statements.dart b/lib/src/rules/unnecessary_statements.dart
index c4f3510..deeb6b5 100644
--- a/lib/src/rules/unnecessary_statements.dart
+++ b/lib/src/rules/unnecessary_statements.dart
@@ -134,8 +134,8 @@
   visitPrefixedIdentifier(PrefixedIdentifier node) {
     // Allow getters; getters with side effects were the main cause of false
     // positives.
-    var bestElement = node.identifier.staticElement;
-    if (bestElement is PropertyAccessorElement && !bestElement.isSynthetic) {
+    var element = node.identifier.staticElement;
+    if (element is PropertyAccessorElement && !element.isSynthetic) {
       return;
     }
 
@@ -155,8 +155,8 @@
   visitPropertyAccess(PropertyAccess node) {
     // Allow getters; getters with side effects were the main cause of false
     // positives.
-    var bestElement = node.propertyName.staticElement;
-    if (bestElement is PropertyAccessorElement && !bestElement.isSynthetic) {
+    var element = node.propertyName.staticElement;
+    if (element is PropertyAccessorElement && !element.isSynthetic) {
       return;
     }
 
@@ -172,9 +172,8 @@
   visitSimpleIdentifier(SimpleIdentifier node) {
     // Allow getters; getters with side effects were the main cause of false
     // positives.
-    var bestElement = node.staticElement;
-    if (node.staticElement is PropertyAccessorElement &&
-        !bestElement.isSynthetic) {
+    var element = node.staticElement;
+    if (element is PropertyAccessorElement && !element.isSynthetic) {
       return;
     }
 
diff --git a/tool/since/dart_sdk.yaml b/tool/since/dart_sdk.yaml
index d3d1084..55e9464 100644
--- a/tool/since/dart_sdk.yaml
+++ b/tool/since/dart_sdk.yaml
@@ -1,3 +1,6 @@
+2.6.0-dev.1.0 : 0.1.97+1
+2.6.0-dev.0.0 : 0.1.97+1
+2.5.0 : 0.1.96
 2.5.0-dev.4.0 : 0.1.96
 2.5.0-dev.3.0 : 0.1.96
 2.5.0-dev.2.1 : 0.1.96