diff --git a/tests/cases/fourslash/getOccurrencesSuper.ts b/tests/cases/fourslash/getOccurrencesSuper.ts
new file mode 100644
index 00000000000..f53d9aca62e
--- /dev/null
+++ b/tests/cases/fourslash/getOccurrencesSuper.ts
@@ -0,0 +1,64 @@
+///
+
+////class SuperType {
+//// superMethod() {
+//// }
+////
+//// static superStaticMethod() {
+//// return 10;
+//// }
+////}
+////
+////class SubType extends SuperType {
+//// public prop1 = [|s/**/uper|].superMethod;
+//// private prop2 = [|super|].superMethod;
+////
+//// constructor() {
+//// [|super|]();
+//// }
+////
+//// public method1() {
+//// return [|super|].superMethod();
+//// }
+////
+//// private method2() {
+//// return [|super|].superMethod();
+//// }
+////
+//// public method3() {
+//// var x = () => [|super|].superMethod();
+////
+//// // Bad but still gets highlighted
+//// function f() {
+//// [|super|].superMethod();
+//// }
+//// }
+////
+//// // Bad but still gets highlighted.
+//// public static statProp1 = super.superStaticMethod;
+////
+//// public static staticMethod1() {
+//// return super.superStaticMethod();
+//// }
+////
+//// private static staticMethod2() {
+//// return super.superStaticMethod();
+//// }
+////
+//// // Are not actually 'super' keywords.
+//// super = 10;
+//// static super = 20;
+////}
+
+test.ranges().forEach(r => {
+ goTo.position(r.start);
+
+ test.ranges().forEach(range => {
+ verify.occurrencesAtPositionContains(range, false);
+ });
+});
+
+goTo.marker();
+test.ranges().forEach(range => {
+ verify.occurrencesAtPositionContains(range, false);
+});
\ No newline at end of file
diff --git a/tests/cases/fourslash/getOccurrencesSuper2.ts b/tests/cases/fourslash/getOccurrencesSuper2.ts
new file mode 100644
index 00000000000..1392170ae18
--- /dev/null
+++ b/tests/cases/fourslash/getOccurrencesSuper2.ts
@@ -0,0 +1,64 @@
+///
+
+////class SuperType {
+//// superMethod() {
+//// }
+////
+//// static superStaticMethod() {
+//// return 10;
+//// }
+////}
+////
+////class SubType extends SuperType {
+//// public prop1 = super.superMethod;
+//// private prop2 = super.superMethod;
+////
+//// constructor() {
+//// super();
+//// }
+////
+//// public method1() {
+//// return super.superMethod();
+//// }
+////
+//// private method2() {
+//// return super.superMethod();
+//// }
+////
+//// public method3() {
+//// var x = () => super.superMethod();
+////
+//// // Bad but still gets highlighted
+//// function f() {
+//// super.superMethod();
+//// }
+//// }
+////
+//// // Bad but still gets highlighted.
+//// public static statProp1 = [|super|].superStaticMethod;
+////
+//// public static staticMethod1() {
+//// return [|super|].superStaticMethod();
+//// }
+////
+//// private static staticMethod2() {
+//// return [|supe/**/r|].superStaticMethod();
+//// }
+////
+//// // Are not actually 'super' keywords.
+//// super = 10;
+//// static super = 20;
+////}
+
+test.ranges().forEach(r => {
+ goTo.position(r.start);
+
+ test.ranges().forEach(range => {
+ verify.occurrencesAtPositionContains(range, false);
+ });
+});
+
+goTo.marker();
+test.ranges().forEach(range => {
+ verify.occurrencesAtPositionContains(range, false);
+});
\ No newline at end of file
diff --git a/tests/cases/fourslash/getOccurrencesSuperNegatives.ts b/tests/cases/fourslash/getOccurrencesSuperNegatives.ts
new file mode 100644
index 00000000000..8c76da33c12
--- /dev/null
+++ b/tests/cases/fourslash/getOccurrencesSuperNegatives.ts
@@ -0,0 +1,27 @@
+///
+
+////function f(x = [|super|]) {
+//// [|super|];
+////}
+////
+////module M {
+//// [|super|];
+//// function f(x = [|super|]) {
+//// [|super|];
+//// }
+////
+//// class A {
+//// }
+////
+//// class B extends A {
+//// constructor() {
+//// super();
+//// }
+//// }
+////}
+
+test.ranges().forEach(r => {
+ goTo.position(r.start);
+
+ verify.occurrencesAtPositionCount(0);
+});