mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-16 15:45:27 -05:00
Filter protected members from the completion list
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
////class Base {
|
||||
//// private privateMethod() { }
|
||||
//// private privateProperty;
|
||||
////
|
||||
//// protected protectedMethod() { }
|
||||
//// protected protectedProperty;
|
||||
////
|
||||
//// public publicMethod() { }
|
||||
//// public publicProperty;
|
||||
////
|
||||
//// protected protectedOverriddenMethod() { }
|
||||
//// protected protectedOverriddenProperty;
|
||||
////
|
||||
//// test() {
|
||||
//// this./*1*/;
|
||||
////
|
||||
//// var b: Base;
|
||||
//// var c: C1;
|
||||
////
|
||||
//// b./*2*/;
|
||||
//// c./*3*/;
|
||||
//// }
|
||||
////}
|
||||
////
|
||||
////class C1 extends Base {
|
||||
//// protected protectedOverriddenMethod() { }
|
||||
//// protected protectedOverriddenProperty;
|
||||
////}
|
||||
|
||||
|
||||
// Same class, everything is visible
|
||||
goTo.marker("1");
|
||||
verify.memberListContains('privateMethod');
|
||||
verify.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
goTo.marker("2");
|
||||
verify.memberListContains('privateMethod');
|
||||
verify.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
// Can not access protected properties overridden in subclass
|
||||
goTo.marker("3");
|
||||
verify.memberListContains('privateMethod');
|
||||
verify.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.not.memberListContains('protectedOverriddenMethod');
|
||||
verify.not.memberListContains('protectedOverriddenProperty');
|
||||
@@ -0,0 +1,76 @@
|
||||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
////class Base {
|
||||
//// private privateMethod() { }
|
||||
//// private privateProperty;
|
||||
////
|
||||
//// protected protectedMethod() { }
|
||||
//// protected protectedProperty;
|
||||
////
|
||||
//// public publicMethod() { }
|
||||
//// public publicProperty;
|
||||
////
|
||||
//// protected protectedOverriddenMethod() { }
|
||||
//// protected protectedOverriddenProperty;
|
||||
////}
|
||||
////
|
||||
////class C1 extends Base {
|
||||
//// protected protectedOverriddenMethod() { }
|
||||
//// protected protectedOverriddenProperty;
|
||||
////
|
||||
//// test() {
|
||||
//// this./*1*/;
|
||||
//// super./*2*/;
|
||||
////
|
||||
//// var b: Base;
|
||||
//// var c: C1;
|
||||
////
|
||||
//// b./*3*/;
|
||||
//// c./*4*/;
|
||||
//// }
|
||||
////}
|
||||
|
||||
|
||||
// Same class, everything is visible
|
||||
goTo.marker("1");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
// Can not access properties on super
|
||||
goTo.marker("2");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.not.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.not.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.not.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
// Can not access protected properties through base class
|
||||
goTo.marker("3");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.not.memberListContains('protectedMethod');
|
||||
verify.not.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.not.memberListContains('protectedOverriddenMethod');
|
||||
verify.not.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
// Same class, everything is visible
|
||||
goTo.marker("4");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
@@ -0,0 +1,46 @@
|
||||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
////class Base {
|
||||
//// private privateMethod() { }
|
||||
//// private privateProperty;
|
||||
////
|
||||
//// protected protectedMethod() { }
|
||||
//// protected protectedProperty;
|
||||
////
|
||||
//// public publicMethod() { }
|
||||
//// public publicProperty;
|
||||
////
|
||||
//// protected protectedOverriddenMethod() { }
|
||||
//// protected protectedOverriddenProperty;
|
||||
////}
|
||||
////
|
||||
////class C1 extends Base {
|
||||
//// protected protectedOverriddenMethod() { }
|
||||
//// protected protectedOverriddenProperty;
|
||||
////}
|
||||
////
|
||||
//// var b: Base;
|
||||
//// var c: C1;
|
||||
//// b./*1*/;
|
||||
//// c./*2*/;
|
||||
|
||||
// Only public properties are visible outside the class
|
||||
goTo.marker("1");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.not.memberListContains('protectedMethod');
|
||||
verify.not.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.not.memberListContains('protectedOverriddenMethod');
|
||||
verify.not.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
goTo.marker("2");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.not.memberListContains('protectedMethod');
|
||||
verify.not.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.not.memberListContains('protectedOverriddenMethod');
|
||||
verify.not.memberListContains('protectedOverriddenProperty');
|
||||
@@ -0,0 +1,34 @@
|
||||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
////class Base {
|
||||
//// private privateMethod() { }
|
||||
//// private privateProperty;
|
||||
////
|
||||
//// protected protectedMethod() { }
|
||||
//// protected protectedProperty;
|
||||
////
|
||||
//// public publicMethod() { }
|
||||
//// public publicProperty;
|
||||
////
|
||||
//// protected protectedOverriddenMethod() { }
|
||||
//// protected protectedOverriddenProperty;
|
||||
////}
|
||||
////
|
||||
////class C1 extends Base {
|
||||
//// public protectedOverriddenMethod() { }
|
||||
//// public protectedOverriddenProperty;
|
||||
////}
|
||||
////
|
||||
//// var c: C1;
|
||||
//// c./*1*/
|
||||
|
||||
|
||||
goTo.marker("1");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.not.memberListContains('protectedMethod');
|
||||
verify.not.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
44
tests/cases/fourslash/completionListProtectedMembers.ts
Normal file
44
tests/cases/fourslash/completionListProtectedMembers.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
/// <reference path="fourslash.ts"/>
|
||||
|
||||
////class Base {
|
||||
//// protected y;
|
||||
//// constructor(protected x) {}
|
||||
//// method() { this./*1*/; }
|
||||
////}
|
||||
////class D1 extends Base {
|
||||
//// protected z;
|
||||
//// method1() { this./*2*/; }
|
||||
////}
|
||||
////class D2 extends Base {
|
||||
//// method2() { this./*3*/; }
|
||||
////}
|
||||
////class D3 extends D1 {
|
||||
//// method2() { this./*4*/; }
|
||||
////}
|
||||
////var b: Base;
|
||||
////f./*5*/
|
||||
|
||||
goTo.marker("1");
|
||||
verify.memberListContains("y");
|
||||
verify.memberListContains("x");
|
||||
verify.not.memberListContains("z");
|
||||
|
||||
goTo.marker("2");
|
||||
verify.memberListContains("y");
|
||||
verify.memberListContains("x");
|
||||
verify.memberListContains("z");
|
||||
|
||||
goTo.marker("3");
|
||||
verify.memberListContains("y");
|
||||
verify.memberListContains("x");
|
||||
verify.not.memberListContains("z");
|
||||
|
||||
goTo.marker("4");
|
||||
verify.memberListContains("y");
|
||||
verify.memberListContains("x");
|
||||
verify.memberListContains("z");
|
||||
|
||||
goTo.marker("5");
|
||||
verify.not.memberListContains("x");
|
||||
verify.not.memberListContains("y");
|
||||
verify.not.memberListContains("z");
|
||||
@@ -0,0 +1,59 @@
|
||||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
////class Base {
|
||||
//// private static privateMethod() { }
|
||||
//// private static privateProperty;
|
||||
////
|
||||
//// protected static protectedMethod() { }
|
||||
//// protected static protectedProperty;
|
||||
////
|
||||
//// public static publicMethod() { }
|
||||
//// public static publicProperty;
|
||||
////
|
||||
//// protected static protectedOverriddenMethod() { }
|
||||
//// protected static protectedOverriddenProperty;
|
||||
////
|
||||
//// static test() {
|
||||
//// Base./*1*/;
|
||||
//// this./*2*/;
|
||||
//// C1./*3*/;
|
||||
//// }
|
||||
////}
|
||||
////
|
||||
////class C1 extends Base {
|
||||
//// protected static protectedOverriddenMethod() { }
|
||||
//// protected static protectedOverriddenProperty;
|
||||
////}
|
||||
|
||||
|
||||
// Same class, everything is visible
|
||||
goTo.marker("1");
|
||||
verify.memberListContains('privateMethod');
|
||||
verify.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
goTo.marker("2");
|
||||
verify.memberListContains('privateMethod');
|
||||
verify.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
// Can not access protected properties overridden in subclass
|
||||
goTo.marker("3");
|
||||
verify.memberListContains('privateMethod');
|
||||
verify.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.not.memberListContains('protectedOverriddenMethod');
|
||||
verify.not.memberListContains('protectedOverriddenProperty');
|
||||
@@ -0,0 +1,70 @@
|
||||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
////class Base {
|
||||
//// private static privateMethod() { }
|
||||
//// private static privateProperty;
|
||||
////
|
||||
//// protected static protectedMethod() { }
|
||||
//// protected static protectedProperty;
|
||||
////
|
||||
//// public static publicMethod() { }
|
||||
//// public static publicProperty;
|
||||
////
|
||||
//// protected static protectedOverriddenMethod() { }
|
||||
//// protected static protectedOverriddenProperty;
|
||||
////}
|
||||
////
|
||||
////class C2 extends Base {
|
||||
//// protected static protectedOverriddenMethod() { }
|
||||
//// protected static protectedOverriddenProperty;
|
||||
////
|
||||
//// static test() {
|
||||
//// Base./*1*/;
|
||||
//// C2./*2*/;
|
||||
//// this./*3*/;
|
||||
//// super./*4*/;
|
||||
//// }
|
||||
////}
|
||||
|
||||
|
||||
// Same class, everything is visible
|
||||
goTo.marker("1");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
goTo.marker("2");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
goTo.marker("3");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
// only public and protected methods of the base class are accessible through super
|
||||
goTo.marker("4");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.not.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.not.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.not.memberListContains('protectedOverriddenProperty');
|
||||
@@ -0,0 +1,45 @@
|
||||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
////class Base {
|
||||
//// private static privateMethod() { }
|
||||
//// private static privateProperty;
|
||||
////
|
||||
//// protected static protectedMethod() { }
|
||||
//// protected static protectedProperty;
|
||||
////
|
||||
//// public static publicMethod() { }
|
||||
//// public static publicProperty;
|
||||
////
|
||||
//// protected static protectedOverriddenMethod() { }
|
||||
//// protected static protectedOverriddenProperty;
|
||||
////}
|
||||
////
|
||||
////class C3 extends Base {
|
||||
//// protected static protectedOverriddenMethod() { }
|
||||
//// protected static protectedOverriddenProperty;
|
||||
////}
|
||||
////
|
||||
////Base./*1*/;
|
||||
////C3./*2*/;
|
||||
|
||||
|
||||
// Only public properties are visible outside the class
|
||||
goTo.marker("1");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.not.memberListContains('protectedMethod');
|
||||
verify.not.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.not.memberListContains('protectedOverriddenMethod');
|
||||
verify.not.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
goTo.marker("2");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.not.memberListContains('protectedMethod');
|
||||
verify.not.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.not.memberListContains('protectedOverriddenMethod');
|
||||
verify.not.memberListContains('protectedOverriddenProperty');
|
||||
@@ -0,0 +1,49 @@
|
||||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
////class Base {
|
||||
//// private static privateMethod() { }
|
||||
//// private static privateProperty;
|
||||
////
|
||||
//// protected static protectedMethod() { }
|
||||
//// protected static protectedProperty;
|
||||
////
|
||||
//// public static publicMethod() { }
|
||||
//// public static publicProperty;
|
||||
////
|
||||
//// protected static protectedOverriddenMethod() { }
|
||||
//// protected static protectedOverriddenProperty;
|
||||
////}
|
||||
////
|
||||
/////// Make the protected members public
|
||||
////class C4 extends Base {
|
||||
//// public static protectedOverriddenMethod() { }
|
||||
//// public static protectedOverriddenProperty;
|
||||
////}
|
||||
////class Derived extends C4 {
|
||||
//// test() {
|
||||
//// Derived./*1*/
|
||||
//// }
|
||||
////}
|
||||
//// Derived./*2*/
|
||||
|
||||
// Sub class, everything but private is visible
|
||||
goTo.marker("1");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.memberListContains('protectedMethod');
|
||||
verify.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
|
||||
// Can see protected methods elevated to public
|
||||
goTo.marker("2");
|
||||
verify.not.memberListContains('privateMethod');
|
||||
verify.not.memberListContains('privateProperty');
|
||||
verify.not.memberListContains('protectedMethod');
|
||||
verify.not.memberListContains('protectedProperty');
|
||||
verify.memberListContains('publicMethod');
|
||||
verify.memberListContains('publicProperty');
|
||||
verify.memberListContains('protectedOverriddenMethod');
|
||||
verify.memberListContains('protectedOverriddenProperty');
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
goTo.marker();
|
||||
verify.memberListContains("publicProperty");
|
||||
verify.not.memberListContains("publicProperty");
|
||||
verify.memberListContains("publicInstanceMethod");
|
||||
// No statics
|
||||
verify.not.memberListContains("publicStaticProperty");
|
||||
|
||||
Reference in New Issue
Block a user