Resynthesize nameOffset for properties/parameters.

R=brianwilkerson@google.com

Change-Id: Ib3213529836df20f580a5d8805006ba13b82bf20
Reviewed-on: https://dart-review.googlesource.com/68761
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/test/analysis/notification_navigation_test.dart b/pkg/analysis_server/test/analysis/notification_navigation_test.dart
index a7f279a..890f511 100644
--- a/pkg/analysis_server/test/analysis/notification_navigation_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_navigation_test.dart
@@ -1040,10 +1040,6 @@
 
   @failingTest
   @override
-  test_annotationField() async => super.test_annotationField();
-
-  @failingTest
-  @override
   test_inComment() async => super.test_inComment();
 
   @failingTest
diff --git a/pkg/analysis_server/test/analysis/notification_overrides_test.dart b/pkg/analysis_server/test/analysis/notification_overrides_test.dart
index 23dee92..5942c7c 100644
--- a/pkg/analysis_server/test/analysis/notification_overrides_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_overrides_test.dart
@@ -634,18 +634,6 @@
 
   @failingTest
   @override
-  test_super_fieldByField() async => super.test_super_fieldByField();
-
-  @failingTest
-  @override
-  test_super_fieldByGetter() async => super.test_super_fieldByGetter();
-
-  @failingTest
-  @override
-  test_super_fieldBySetter() async => super.test_super_fieldBySetter();
-
-  @failingTest
-  @override
   test_super_method_superTypeCycle() async {
     fail('Timeout');
 //    return callFailingTest(super.test_super_method_superTypeCycle);
diff --git a/pkg/analysis_server/test/integration/analysis/navigation_test.dart b/pkg/analysis_server/test/integration/analysis/navigation_test.dart
index 1eb6b71..0337b72 100644
--- a/pkg/analysis_server/test/integration/analysis/navigation_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/navigation_test.dart
@@ -139,8 +139,4 @@
 class AnalysisNavigationTest_UseCFE extends AnalysisNavigationTest {
   @override
   bool get useCFE => true;
-
-  @override
-  @failingTest
-  test_navigation() => super.test_navigation();
 }
diff --git a/pkg/analysis_server/test/search/type_hierarchy_test.dart b/pkg/analysis_server/test/search/type_hierarchy_test.dart
index d707da7..6c20bff 100644
--- a/pkg/analysis_server/test/search/type_hierarchy_test.dart
+++ b/pkg/analysis_server/test/search/type_hierarchy_test.dart
@@ -1105,28 +1105,6 @@
 
   @failingTest
   @override
-  test_member_fromField_toField() => super.test_member_fromField_toField();
-
-  @failingTest
-  @override
-  test_member_fromField_toGetter() => super.test_member_fromField_toGetter();
-
-  @failingTest
-  @override
-  test_member_fromField_toSetter() => super.test_member_fromField_toSetter();
-
-  @failingTest
-  @override
-  test_member_fromFinalField_toGetter() =>
-      super.test_member_fromFinalField_toGetter();
-
-  @failingTest
-  @override
-  test_member_fromFinalField_toSetter() =>
-      super.test_member_fromFinalField_toSetter();
-
-  @failingTest
-  @override
   test_member_getter() {
     fail('Timeout');
 //    return callFailingTest(super.test_member_getter);
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 0872c30..792a447 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -8078,8 +8078,13 @@
   @override
   int get nameOffset {
     int offset = super.nameOffset;
-    if (offset == 0 && _unlinkedVariable != null) {
-      return _unlinkedVariable.nameOffset;
+    if (offset == 0) {
+      if (_kernel != null) {
+        return _kernel.fileOffset;
+      }
+      if (_unlinkedVariable != null) {
+        return _unlinkedVariable.nameOffset;
+      }
     }
     return offset;
   }
@@ -8446,14 +8451,19 @@
   @override
   int get nameOffset {
     int offset = super.nameOffset;
-    if (offset == 0 && unlinkedParam != null) {
-      if (isSynthetic ||
-          (unlinkedParam.name.isEmpty &&
-              unlinkedParam.kind != UnlinkedParamKind.named &&
-              enclosingElement is GenericFunctionTypeElement)) {
-        return -1;
+    if (offset == 0) {
+      if (_kernel != null) {
+        return _kernel.fileOffset;
       }
-      return unlinkedParam.nameOffset;
+      if (unlinkedParam != null) {
+        if (isSynthetic ||
+            (unlinkedParam.name.isEmpty &&
+                unlinkedParam.kind != UnlinkedParamKind.named &&
+                enclosingElement is GenericFunctionTypeElement)) {
+          return -1;
+        }
+        return unlinkedParam.nameOffset;
+      }
     }
     return offset;
   }
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index db674ca..38dd3ef 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -9023,6 +9023,16 @@
 ''');
   }
 
+  test_parameter() async {
+    var library = await checkLibrary('void main(int p) {}');
+    checkElementText(
+        library,
+        r'''
+void main@5(int p@14) {}
+''',
+        withOffsets: true);
+  }
+
   test_parameter_checked() async {
     // Note: due to dartbug.com/27393, the keyword "checked" is identified by
     // its presence in a library called "meta".  If that bug is fixed, this test
@@ -10445,6 +10455,19 @@
     }
   }
 
+  test_variable() async {
+    var library = await checkLibrary('int x = 0;');
+    checkElementText(
+        library,
+        r'''
+int x@4;
+synthetic int get x@4 {}
+synthetic void set x@4(int _x@4) {}
+''',
+        withOffsets: true,
+        withSyntheticAccessors: true);
+  }
+
   test_variable_const() async {
     var library = await checkLibrary('const int i = 0;');
     checkElementText(library, r'''