Merge branch 'master' into fixDecoratedClassName
This commit is contained in:
commit
0978639ab2
20
AUTHORS.md
20
AUTHORS.md
|
@ -2,9 +2,11 @@ TypeScript is authored by:
|
|||
|
||||
* Adam Freidin
|
||||
* Ahmad Farid
|
||||
* Akshar Patel
|
||||
* Anders Hejlsberg
|
||||
* Arnav Singh
|
||||
* Arthur Ozga
|
||||
* Asad Saeeduddin
|
||||
* Basarat Ali Syed
|
||||
* Ben Duffield
|
||||
* Bill Ticehurst
|
||||
|
@ -15,30 +17,39 @@ TypeScript is authored by:
|
|||
* Colby Russell
|
||||
* Colin Snover
|
||||
* Cyrus Najmabadi
|
||||
* Dan Corder
|
||||
* Dan Quirk
|
||||
* Daniel Rosenwasser
|
||||
* @dashaus
|
||||
* David Li
|
||||
* Denis Nedelyaev
|
||||
* Dick van den Brink
|
||||
* Dirk Bäumer
|
||||
* Dirk Holtwick
|
||||
* Eyas Sharaiha
|
||||
* @falsandtru
|
||||
* Frank Wallis
|
||||
* Gabriel Isenberg
|
||||
* Gilad Peleg
|
||||
* Graeme Wicksted
|
||||
* Guillaume Salles
|
||||
* Guy Bedford
|
||||
* Harald Niesche
|
||||
* Iain Monro
|
||||
* Ingvar Stepanyan
|
||||
* Ivo Gabe de Wolff
|
||||
* James Whitney
|
||||
* Jason Freeman
|
||||
* Jason Killian
|
||||
* Jason Ramsay
|
||||
* Jed Mao
|
||||
* Jeffrey Morlan
|
||||
* Johannes Rieken
|
||||
* John Vilk
|
||||
* Jonathan Bond-Caron
|
||||
* Jonathan Park
|
||||
* Jonathan Turner
|
||||
* Jonathon Smith
|
||||
* Josh Kalderimis
|
||||
* Julian Williams
|
||||
* Kagami Sascha Rosylight
|
||||
|
@ -46,21 +57,27 @@ TypeScript is authored by:
|
|||
* Ken Howard
|
||||
* Kenji Imamula
|
||||
* Lorant Pinter
|
||||
* Lucien Greathouse
|
||||
* Martin Všetička
|
||||
* Masahiro Wakame
|
||||
* Mattias Buelens
|
||||
* Max Deepfield
|
||||
* Micah Zoltu
|
||||
* Mohamed Hegazy
|
||||
* Nathan Shively-Sanders
|
||||
* Nathan Yee
|
||||
* Oleg Mihailik
|
||||
* Oleksandr Chekhovskyi
|
||||
* Paul van Brenk
|
||||
* @pcbro
|
||||
* Pedro Maltez
|
||||
* Philip Bulley
|
||||
* piloopin
|
||||
* @progre
|
||||
* Punya Biswal
|
||||
* Richard Sentino
|
||||
* Ron Buckton
|
||||
* Rowan Wyborn
|
||||
* Ryan Cavanaugh
|
||||
* Ryohei Ikegami
|
||||
* Sébastien Arod
|
||||
|
@ -71,7 +88,9 @@ TypeScript is authored by:
|
|||
* Solal Pirelli
|
||||
* Stan Thomas
|
||||
* Steve Lucco
|
||||
* Thomas Loubiou
|
||||
* Tien Hoanhtien
|
||||
* Tim Perry
|
||||
* Tingan Ho
|
||||
* togru
|
||||
* Tomas Grubliauskas
|
||||
|
@ -81,5 +100,6 @@ TypeScript is authored by:
|
|||
* Wesley Wigham
|
||||
* York Yao
|
||||
* Yui Tanglertsampan
|
||||
* Yuichi Nukiyama
|
||||
* Zev Spitz
|
||||
* Zhengbo Li
|
||||
|
|
|
@ -10442,7 +10442,8 @@ namespace ts {
|
|||
}
|
||||
else {
|
||||
error(func, Diagnostics.No_best_common_type_exists_among_return_expressions);
|
||||
return unknownType;
|
||||
// Defer to unioning the return types so we get a) downstream errors earlier and b) better Salsa experience
|
||||
return getUnionType(types);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -15379,6 +15380,20 @@ namespace ts {
|
|||
return getSymbolOfNode(entityName.parent);
|
||||
}
|
||||
|
||||
if (isInJavaScriptFile(entityName) && entityName.parent.kind === SyntaxKind.PropertyAccessExpression) {
|
||||
const specialPropertyAssignmentKind = getSpecialPropertyAssignmentKind(entityName.parent.parent);
|
||||
switch (specialPropertyAssignmentKind) {
|
||||
case SpecialPropertyAssignmentKind.ExportsProperty:
|
||||
case SpecialPropertyAssignmentKind.PrototypeProperty:
|
||||
return getSymbolOfNode(entityName.parent);
|
||||
case SpecialPropertyAssignmentKind.ThisProperty:
|
||||
case SpecialPropertyAssignmentKind.ModuleExports:
|
||||
return getSymbolOfNode(entityName.parent.parent);
|
||||
default:
|
||||
// Fall through if it is not a special property assignment
|
||||
}
|
||||
}
|
||||
|
||||
if (entityName.parent.kind === SyntaxKind.ExportAssignment) {
|
||||
return resolveEntityName(<Identifier>entityName,
|
||||
/*all meanings*/ SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace | SymbolFlags.Alias);
|
||||
|
|
|
@ -637,18 +637,21 @@ namespace ts {
|
|||
}
|
||||
}
|
||||
|
||||
function emitClassMemberDeclarationFlags(node: Declaration) {
|
||||
if (node.flags & NodeFlags.Private) {
|
||||
function emitClassMemberDeclarationFlags(flags: NodeFlags) {
|
||||
if (flags & NodeFlags.Private) {
|
||||
write("private ");
|
||||
}
|
||||
else if (node.flags & NodeFlags.Protected) {
|
||||
else if (flags & NodeFlags.Protected) {
|
||||
write("protected ");
|
||||
}
|
||||
|
||||
if (node.flags & NodeFlags.Static) {
|
||||
if (flags & NodeFlags.Static) {
|
||||
write("static ");
|
||||
}
|
||||
if (node.flags & NodeFlags.Abstract) {
|
||||
if (flags & NodeFlags.Readonly) {
|
||||
write("readonly ");
|
||||
}
|
||||
if (flags & NodeFlags.Abstract) {
|
||||
write("abstract ");
|
||||
}
|
||||
}
|
||||
|
@ -1074,7 +1077,7 @@ namespace ts {
|
|||
}
|
||||
|
||||
emitJsDocComments(node);
|
||||
emitClassMemberDeclarationFlags(node);
|
||||
emitClassMemberDeclarationFlags(node.flags);
|
||||
emitVariableDeclaration(<VariableDeclaration>node);
|
||||
write(";");
|
||||
writeLine();
|
||||
|
@ -1227,7 +1230,7 @@ namespace ts {
|
|||
if (node === accessors.firstAccessor) {
|
||||
emitJsDocComments(accessors.getAccessor);
|
||||
emitJsDocComments(accessors.setAccessor);
|
||||
emitClassMemberDeclarationFlags(node);
|
||||
emitClassMemberDeclarationFlags(node.flags | (accessors.setAccessor ? 0 : NodeFlags.Readonly));
|
||||
writeTextOfNode(currentText, node.name);
|
||||
if (!(node.flags & NodeFlags.Private)) {
|
||||
accessorWithTypeAnnotation = node;
|
||||
|
@ -1314,7 +1317,7 @@ namespace ts {
|
|||
emitModuleElementDeclarationFlags(node);
|
||||
}
|
||||
else if (node.kind === SyntaxKind.MethodDeclaration) {
|
||||
emitClassMemberDeclarationFlags(node);
|
||||
emitClassMemberDeclarationFlags(node.flags);
|
||||
}
|
||||
if (node.kind === SyntaxKind.FunctionDeclaration) {
|
||||
write("function ");
|
||||
|
@ -1342,15 +1345,17 @@ namespace ts {
|
|||
const prevEnclosingDeclaration = enclosingDeclaration;
|
||||
enclosingDeclaration = node;
|
||||
|
||||
// Construct signature or constructor type write new Signature
|
||||
if (node.kind === SyntaxKind.ConstructSignature || node.kind === SyntaxKind.ConstructorType) {
|
||||
write("new ");
|
||||
}
|
||||
emitTypeParameters(node.typeParameters);
|
||||
if (node.kind === SyntaxKind.IndexSignature) {
|
||||
// Index signature can have readonly modifier
|
||||
emitClassMemberDeclarationFlags(node.flags);
|
||||
write("[");
|
||||
}
|
||||
else {
|
||||
// Construct signature or constructor type write new Signature
|
||||
if (node.kind === SyntaxKind.ConstructSignature || node.kind === SyntaxKind.ConstructorType) {
|
||||
write("new ");
|
||||
}
|
||||
emitTypeParameters(node.typeParameters);
|
||||
write("(");
|
||||
}
|
||||
|
||||
|
|
|
@ -7123,14 +7123,22 @@ const _super = (function (geti, seti) {
|
|||
|
||||
for (let i = 0; i < externalImports.length; i++) {
|
||||
const text = getExternalModuleNameText(externalImports[i], emitRelativePathAsModuleName);
|
||||
if (hasProperty(groupIndices, text)) {
|
||||
if (text === undefined) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// text should be quoted string
|
||||
// for deduplication purposes in key remove leading and trailing quotes so 'a' and "a" will be considered the same
|
||||
const key = text.substr(1, text.length - 2);
|
||||
|
||||
if (hasProperty(groupIndices, key)) {
|
||||
// deduplicate/group entries in dependency list by the dependency name
|
||||
const groupIndex = groupIndices[text];
|
||||
const groupIndex = groupIndices[key];
|
||||
dependencyGroups[groupIndex].push(externalImports[i]);
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
groupIndices[text] = dependencyGroups.length;
|
||||
groupIndices[key] = dependencyGroups.length;
|
||||
dependencyGroups.push([externalImports[i]]);
|
||||
}
|
||||
|
||||
|
|
|
@ -4017,7 +4017,7 @@ namespace ts {
|
|||
setDecoratorContext(/*val*/ true);
|
||||
}
|
||||
|
||||
return finishNode(node);
|
||||
return addJSDocComment(finishNode(node));
|
||||
}
|
||||
|
||||
function parseOptionalIdentifier() {
|
||||
|
@ -4301,13 +4301,13 @@ namespace ts {
|
|||
const labeledStatement = <LabeledStatement>createNode(SyntaxKind.LabeledStatement, fullStart);
|
||||
labeledStatement.label = <Identifier>expression;
|
||||
labeledStatement.statement = parseStatement();
|
||||
return finishNode(labeledStatement);
|
||||
return addJSDocComment(finishNode(labeledStatement));
|
||||
}
|
||||
else {
|
||||
const expressionStatement = <ExpressionStatement>createNode(SyntaxKind.ExpressionStatement, fullStart);
|
||||
expressionStatement.expression = expression;
|
||||
parseSemicolon();
|
||||
return finishNode(expressionStatement);
|
||||
return addJSDocComment(finishNode(expressionStatement));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1205,7 +1205,19 @@ namespace ts {
|
|||
node.parent.parent.parent.kind === SyntaxKind.VariableStatement;
|
||||
|
||||
const variableStatementNode = isInitializerOfVariableDeclarationInStatement ? node.parent.parent.parent : undefined;
|
||||
return variableStatementNode && variableStatementNode.jsDocComment;
|
||||
if (variableStatementNode) {
|
||||
return variableStatementNode.jsDocComment;
|
||||
}
|
||||
|
||||
// Also recognize when the node is the RHS of an assignment expression
|
||||
const isSourceOfAssignmentExpressionStatement =
|
||||
node.parent && node.parent.parent &&
|
||||
node.parent.kind === SyntaxKind.BinaryExpression &&
|
||||
(node.parent as BinaryExpression).operatorToken.kind === SyntaxKind.EqualsToken &&
|
||||
node.parent.parent.kind === SyntaxKind.ExpressionStatement;
|
||||
if (isSourceOfAssignmentExpressionStatement) {
|
||||
return node.parent.parent.jsDocComment;
|
||||
}
|
||||
}
|
||||
|
||||
return undefined;
|
||||
|
|
|
@ -211,12 +211,12 @@ declare class a {
|
|||
pgF(): void;
|
||||
pv: any;
|
||||
d: number;
|
||||
static p2: {
|
||||
static readonly p2: {
|
||||
x: number;
|
||||
y: number;
|
||||
};
|
||||
private static d2();
|
||||
private static p3;
|
||||
private static readonly p3;
|
||||
private pv3;
|
||||
private foo(n);
|
||||
private foo(s);
|
||||
|
|
|
@ -568,8 +568,8 @@ declare var i1_c: typeof c1;
|
|||
declare class cProperties {
|
||||
private val;
|
||||
/** getter only property*/
|
||||
p1: number;
|
||||
nc_p1: number;
|
||||
readonly p1: number;
|
||||
readonly nc_p1: number;
|
||||
/**setter only property*/
|
||||
p2: number;
|
||||
nc_p2: number;
|
||||
|
|
|
@ -316,19 +316,19 @@ declare class c2 {
|
|||
/** c2 c2_f1*/
|
||||
c2_f1(): void;
|
||||
/** c2 c2_prop*/
|
||||
c2_prop: number;
|
||||
readonly c2_prop: number;
|
||||
c2_nc_p1: number;
|
||||
c2_nc_f1(): void;
|
||||
c2_nc_prop: number;
|
||||
readonly c2_nc_prop: number;
|
||||
/** c2 p1*/
|
||||
p1: number;
|
||||
/** c2 f1*/
|
||||
f1(): void;
|
||||
/** c2 prop*/
|
||||
prop: number;
|
||||
readonly prop: number;
|
||||
nc_p1: number;
|
||||
nc_f1(): void;
|
||||
nc_prop: number;
|
||||
readonly nc_prop: number;
|
||||
/** c2 constructor*/
|
||||
constructor(a: number);
|
||||
}
|
||||
|
@ -339,10 +339,10 @@ declare class c3 extends c2 {
|
|||
/** c3 f1*/
|
||||
f1(): void;
|
||||
/** c3 prop*/
|
||||
prop: number;
|
||||
readonly prop: number;
|
||||
nc_p1: number;
|
||||
nc_f1(): void;
|
||||
nc_prop: number;
|
||||
readonly nc_prop: number;
|
||||
}
|
||||
declare var c2_i: c2;
|
||||
declare var c3_i: c3;
|
||||
|
|
|
@ -284,7 +284,7 @@ export declare class c1 {
|
|||
nc_p3: number;
|
||||
private nc_pp3;
|
||||
static nc_s3: string;
|
||||
onlyGetter: number;
|
||||
readonly onlyGetter: number;
|
||||
onlySetter: number;
|
||||
}
|
||||
//// [declFileAccessors_1.d.ts]
|
||||
|
@ -302,6 +302,6 @@ declare class c2 {
|
|||
nc_p3: number;
|
||||
private nc_pp3;
|
||||
static nc_s3: string;
|
||||
onlyGetter: number;
|
||||
readonly onlyGetter: number;
|
||||
onlySetter: number;
|
||||
}
|
||||
|
|
|
@ -52,8 +52,8 @@ declare class C {
|
|||
static y: number;
|
||||
private static a();
|
||||
static b(): void;
|
||||
private static c;
|
||||
static d: number;
|
||||
private static readonly c;
|
||||
static readonly d: number;
|
||||
private static e;
|
||||
static f: any;
|
||||
}
|
||||
|
|
|
@ -135,7 +135,7 @@ declare class C1 {
|
|||
protected static sx: number;
|
||||
protected static sf(): number;
|
||||
protected static staticSetter: number;
|
||||
protected static staticGetter: number;
|
||||
protected static readonly staticGetter: number;
|
||||
}
|
||||
declare class C2 extends C1 {
|
||||
protected f(): number;
|
||||
|
@ -146,7 +146,7 @@ declare class C3 extends C2 {
|
|||
static sx: number;
|
||||
f(): number;
|
||||
static sf(): number;
|
||||
static staticGetter: number;
|
||||
static readonly staticGetter: number;
|
||||
}
|
||||
declare class C4 {
|
||||
protected a: number;
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
tests/cases/compiler/deduplicateImportsInSystem.ts(1,17): error TS2307: Cannot find module 'f1'.
|
||||
tests/cases/compiler/deduplicateImportsInSystem.ts(2,17): error TS2307: Cannot find module 'f2'.
|
||||
tests/cases/compiler/deduplicateImportsInSystem.ts(3,17): error TS2307: Cannot find module 'f3'.
|
||||
tests/cases/compiler/deduplicateImportsInSystem.ts(4,17): error TS2307: Cannot find module 'f2'.
|
||||
tests/cases/compiler/deduplicateImportsInSystem.ts(5,17): error TS2307: Cannot find module 'f2'.
|
||||
tests/cases/compiler/deduplicateImportsInSystem.ts(6,17): error TS2307: Cannot find module 'f1'.
|
||||
tests/cases/compiler/deduplicateImportsInSystem.ts(8,1): error TS2304: Cannot find name 'console'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/deduplicateImportsInSystem.ts (7 errors) ====
|
||||
import {A} from "f1";
|
||||
~~~~
|
||||
!!! error TS2307: Cannot find module 'f1'.
|
||||
import {B} from "f2";
|
||||
~~~~
|
||||
!!! error TS2307: Cannot find module 'f2'.
|
||||
import {C} from "f3";
|
||||
~~~~
|
||||
!!! error TS2307: Cannot find module 'f3'.
|
||||
import {D} from 'f2';
|
||||
~~~~
|
||||
!!! error TS2307: Cannot find module 'f2'.
|
||||
import {E} from "f2";
|
||||
~~~~
|
||||
!!! error TS2307: Cannot find module 'f2'.
|
||||
import {F} from 'f1';
|
||||
~~~~
|
||||
!!! error TS2307: Cannot find module 'f1'.
|
||||
|
||||
console.log(A + B + C + D + E + F)
|
||||
~~~~~~~
|
||||
!!! error TS2304: Cannot find name 'console'.
|
33
tests/baselines/reference/deduplicateImportsInSystem.js
Normal file
33
tests/baselines/reference/deduplicateImportsInSystem.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
//// [deduplicateImportsInSystem.ts]
|
||||
import {A} from "f1";
|
||||
import {B} from "f2";
|
||||
import {C} from "f3";
|
||||
import {D} from 'f2';
|
||||
import {E} from "f2";
|
||||
import {F} from 'f1';
|
||||
|
||||
console.log(A + B + C + D + E + F)
|
||||
|
||||
//// [deduplicateImportsInSystem.js]
|
||||
System.register(["f1", "f2", "f3"], function(exports_1) {
|
||||
"use strict";
|
||||
var f1_1, f2_1, f3_1, f2_2, f2_3, f1_2;
|
||||
return {
|
||||
setters:[
|
||||
function (f1_1_1) {
|
||||
f1_1 = f1_1_1;
|
||||
f1_2 = f1_1_1;
|
||||
},
|
||||
function (f2_1_1) {
|
||||
f2_1 = f2_1_1;
|
||||
f2_2 = f2_1_1;
|
||||
f2_3 = f2_1_1;
|
||||
},
|
||||
function (f3_1_1) {
|
||||
f3_1 = f3_1_1;
|
||||
}],
|
||||
execute: function() {
|
||||
console.log(f1_1.A + f2_1.B + f3_1.C + f2_2.D + f2_3.E + f1_2.F);
|
||||
}
|
||||
}
|
||||
});
|
|
@ -1120,11 +1120,11 @@ export declare class eC {
|
|||
pF(): void;
|
||||
private rF();
|
||||
pgF(): void;
|
||||
pgF: any;
|
||||
readonly pgF: any;
|
||||
psF(param: any): void;
|
||||
psF: any;
|
||||
private rgF();
|
||||
private rgF;
|
||||
private readonly rgF;
|
||||
private rsF(param);
|
||||
private rsF;
|
||||
static tV: any;
|
||||
|
@ -1132,7 +1132,7 @@ export declare class eC {
|
|||
static tsF(param: any): void;
|
||||
static tsF: any;
|
||||
static tgF(): void;
|
||||
static tgF: any;
|
||||
static readonly tgF: any;
|
||||
}
|
||||
export interface eI {
|
||||
(): any;
|
||||
|
@ -1172,11 +1172,11 @@ export declare module eM {
|
|||
pF(): void;
|
||||
private rF();
|
||||
pgF(): void;
|
||||
pgF: any;
|
||||
readonly pgF: any;
|
||||
psF(param: any): void;
|
||||
psF: any;
|
||||
private rgF();
|
||||
private rgF;
|
||||
private readonly rgF;
|
||||
private rsF(param);
|
||||
private rsF;
|
||||
static tV: any;
|
||||
|
@ -1184,7 +1184,7 @@ export declare module eM {
|
|||
static tsF(param: any): void;
|
||||
static tsF: any;
|
||||
static tgF(): void;
|
||||
static tgF: any;
|
||||
static readonly tgF: any;
|
||||
}
|
||||
interface eI {
|
||||
(): any;
|
||||
|
@ -1239,11 +1239,11 @@ export declare module eM {
|
|||
pF(): void;
|
||||
private rF();
|
||||
pgF(): void;
|
||||
pgF: any;
|
||||
readonly pgF: any;
|
||||
psF(param: any): void;
|
||||
psF: any;
|
||||
private rgF();
|
||||
private rgF;
|
||||
private readonly rgF;
|
||||
private rsF(param);
|
||||
private rsF;
|
||||
static tV: any;
|
||||
|
@ -1251,7 +1251,7 @@ export declare module eM {
|
|||
static tsF(param: any): void;
|
||||
static tsF: any;
|
||||
static tgF(): void;
|
||||
static tgF: any;
|
||||
static readonly tgF: any;
|
||||
}
|
||||
module eaM {
|
||||
var V: any;
|
||||
|
@ -1281,11 +1281,11 @@ export declare class eaC {
|
|||
pF(): void;
|
||||
private rF();
|
||||
pgF(): void;
|
||||
pgF: any;
|
||||
readonly pgF: any;
|
||||
psF(param: any): void;
|
||||
psF: any;
|
||||
private rgF();
|
||||
private rgF;
|
||||
private readonly rgF;
|
||||
private rsF(param);
|
||||
private rsF;
|
||||
static tV: any;
|
||||
|
@ -1293,7 +1293,7 @@ export declare class eaC {
|
|||
static tsF(param: any): void;
|
||||
static tsF: any;
|
||||
static tgF(): void;
|
||||
static tgF: any;
|
||||
static readonly tgF: any;
|
||||
}
|
||||
export declare module eaM {
|
||||
var V: any;
|
||||
|
|
|
@ -193,7 +193,7 @@ declare module schema {
|
|||
}
|
||||
declare module schema {
|
||||
class T {
|
||||
createValidator9: <T>(data: T) => T;
|
||||
readonly createValidator9: <T>(data: T) => T;
|
||||
createValidator10: <T>(data: T) => T;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -459,10 +459,10 @@ declare module exportTests {
|
|||
class C3_public {
|
||||
private getC2_private();
|
||||
private setC2_private(arg);
|
||||
private c2;
|
||||
private readonly c2;
|
||||
getC1_public(): C1_public;
|
||||
setC1_public(arg: C1_public): void;
|
||||
c1: C1_public;
|
||||
readonly c1: C1_public;
|
||||
}
|
||||
}
|
||||
declare module mAmbient {
|
||||
|
|
180
tests/baselines/reference/readonlyInDeclarationFile.js
Normal file
180
tests/baselines/reference/readonlyInDeclarationFile.js
Normal file
|
@ -0,0 +1,180 @@
|
|||
//// [readonlyInDeclarationFile.ts]
|
||||
|
||||
interface Foo {
|
||||
readonly x: number;
|
||||
readonly [x: string]: Object;
|
||||
}
|
||||
|
||||
class C {
|
||||
readonly [x: string]: Object;
|
||||
private readonly a1: number;
|
||||
protected readonly a2: number;
|
||||
public readonly a3: number;
|
||||
private get b1() { return 1 }
|
||||
protected get b2() { return 1 }
|
||||
public get b3() { return 1 }
|
||||
private get c1() { return 1 }
|
||||
private set c1(value) { }
|
||||
protected get c2() { return 1 }
|
||||
protected set c2(value) { }
|
||||
public get c3() { return 1 }
|
||||
public set c3(value) { }
|
||||
private static readonly s1: number;
|
||||
protected static readonly s2: number;
|
||||
public static readonly s3: number;
|
||||
private static get t1() { return 1 }
|
||||
protected static get t2() { return 1 }
|
||||
public static get t3() { return 1 }
|
||||
private static get u1() { return 1 }
|
||||
private static set u1(value) { }
|
||||
protected static get u2() { return 1 }
|
||||
protected static set u2(value) { }
|
||||
public static get u3() { return 1 }
|
||||
public static set u3(value) { }
|
||||
}
|
||||
|
||||
var z: {
|
||||
readonly a: string;
|
||||
readonly [x: string]: Object;
|
||||
}
|
||||
|
||||
function f() {
|
||||
return {
|
||||
get x() { return 1; },
|
||||
get y() { return 1; },
|
||||
set y(value) { }
|
||||
}
|
||||
}
|
||||
|
||||
function g() {
|
||||
var x: {
|
||||
readonly a: string;
|
||||
readonly [x: string]: Object;
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
//// [readonlyInDeclarationFile.js]
|
||||
var C = (function () {
|
||||
function C() {
|
||||
}
|
||||
Object.defineProperty(C.prototype, "b1", {
|
||||
get: function () { return 1; },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C.prototype, "b2", {
|
||||
get: function () { return 1; },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C.prototype, "b3", {
|
||||
get: function () { return 1; },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C.prototype, "c1", {
|
||||
get: function () { return 1; },
|
||||
set: function (value) { },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C.prototype, "c2", {
|
||||
get: function () { return 1; },
|
||||
set: function (value) { },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C.prototype, "c3", {
|
||||
get: function () { return 1; },
|
||||
set: function (value) { },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C, "t1", {
|
||||
get: function () { return 1; },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C, "t2", {
|
||||
get: function () { return 1; },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C, "t3", {
|
||||
get: function () { return 1; },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C, "u1", {
|
||||
get: function () { return 1; },
|
||||
set: function (value) { },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C, "u2", {
|
||||
get: function () { return 1; },
|
||||
set: function (value) { },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(C, "u3", {
|
||||
get: function () { return 1; },
|
||||
set: function (value) { },
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
return C;
|
||||
}());
|
||||
var z;
|
||||
function f() {
|
||||
return {
|
||||
get x() { return 1; },
|
||||
get y() { return 1; },
|
||||
set y(value) { }
|
||||
};
|
||||
}
|
||||
function g() {
|
||||
var x;
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
//// [readonlyInDeclarationFile.d.ts]
|
||||
interface Foo {
|
||||
readonly x: number;
|
||||
readonly [x: string]: Object;
|
||||
}
|
||||
declare class C {
|
||||
readonly [x: string]: Object;
|
||||
private readonly a1;
|
||||
protected readonly a2: number;
|
||||
readonly a3: number;
|
||||
private readonly b1;
|
||||
protected readonly b2: number;
|
||||
readonly b3: number;
|
||||
private c1;
|
||||
protected c2: number;
|
||||
c3: number;
|
||||
private static readonly s1;
|
||||
protected static readonly s2: number;
|
||||
static readonly s3: number;
|
||||
private static readonly t1;
|
||||
protected static readonly t2: number;
|
||||
static readonly t3: number;
|
||||
private static u1;
|
||||
protected static u2: number;
|
||||
static u3: number;
|
||||
}
|
||||
declare var z: {
|
||||
readonly a: string;
|
||||
readonly [x: string]: Object;
|
||||
};
|
||||
declare function f(): {
|
||||
readonly x: number;
|
||||
y: number;
|
||||
};
|
||||
declare function g(): {
|
||||
readonly [x: string]: Object;
|
||||
readonly a: string;
|
||||
};
|
142
tests/baselines/reference/readonlyInDeclarationFile.symbols
Normal file
142
tests/baselines/reference/readonlyInDeclarationFile.symbols
Normal file
|
@ -0,0 +1,142 @@
|
|||
=== tests/cases/compiler/readonlyInDeclarationFile.ts ===
|
||||
|
||||
interface Foo {
|
||||
>Foo : Symbol(Foo, Decl(readonlyInDeclarationFile.ts, 0, 0))
|
||||
|
||||
readonly x: number;
|
||||
>x : Symbol(x, Decl(readonlyInDeclarationFile.ts, 1, 15))
|
||||
|
||||
readonly [x: string]: Object;
|
||||
>x : Symbol(x, Decl(readonlyInDeclarationFile.ts, 3, 14))
|
||||
>Object : Symbol(Object, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
|
||||
}
|
||||
|
||||
class C {
|
||||
>C : Symbol(C, Decl(readonlyInDeclarationFile.ts, 4, 1))
|
||||
|
||||
readonly [x: string]: Object;
|
||||
>x : Symbol(x, Decl(readonlyInDeclarationFile.ts, 7, 14))
|
||||
>Object : Symbol(Object, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
|
||||
|
||||
private readonly a1: number;
|
||||
>a1 : Symbol(a1, Decl(readonlyInDeclarationFile.ts, 7, 33))
|
||||
|
||||
protected readonly a2: number;
|
||||
>a2 : Symbol(a2, Decl(readonlyInDeclarationFile.ts, 8, 32))
|
||||
|
||||
public readonly a3: number;
|
||||
>a3 : Symbol(a3, Decl(readonlyInDeclarationFile.ts, 9, 34))
|
||||
|
||||
private get b1() { return 1 }
|
||||
>b1 : Symbol(b1, Decl(readonlyInDeclarationFile.ts, 10, 31))
|
||||
|
||||
protected get b2() { return 1 }
|
||||
>b2 : Symbol(b2, Decl(readonlyInDeclarationFile.ts, 11, 33))
|
||||
|
||||
public get b3() { return 1 }
|
||||
>b3 : Symbol(b3, Decl(readonlyInDeclarationFile.ts, 12, 35))
|
||||
|
||||
private get c1() { return 1 }
|
||||
>c1 : Symbol(c1, Decl(readonlyInDeclarationFile.ts, 13, 32), Decl(readonlyInDeclarationFile.ts, 14, 33))
|
||||
|
||||
private set c1(value) { }
|
||||
>c1 : Symbol(c1, Decl(readonlyInDeclarationFile.ts, 13, 32), Decl(readonlyInDeclarationFile.ts, 14, 33))
|
||||
>value : Symbol(value, Decl(readonlyInDeclarationFile.ts, 15, 19))
|
||||
|
||||
protected get c2() { return 1 }
|
||||
>c2 : Symbol(c2, Decl(readonlyInDeclarationFile.ts, 15, 29), Decl(readonlyInDeclarationFile.ts, 16, 35))
|
||||
|
||||
protected set c2(value) { }
|
||||
>c2 : Symbol(c2, Decl(readonlyInDeclarationFile.ts, 15, 29), Decl(readonlyInDeclarationFile.ts, 16, 35))
|
||||
>value : Symbol(value, Decl(readonlyInDeclarationFile.ts, 17, 21))
|
||||
|
||||
public get c3() { return 1 }
|
||||
>c3 : Symbol(c3, Decl(readonlyInDeclarationFile.ts, 17, 31), Decl(readonlyInDeclarationFile.ts, 18, 32))
|
||||
|
||||
public set c3(value) { }
|
||||
>c3 : Symbol(c3, Decl(readonlyInDeclarationFile.ts, 17, 31), Decl(readonlyInDeclarationFile.ts, 18, 32))
|
||||
>value : Symbol(value, Decl(readonlyInDeclarationFile.ts, 19, 18))
|
||||
|
||||
private static readonly s1: number;
|
||||
>s1 : Symbol(C.s1, Decl(readonlyInDeclarationFile.ts, 19, 28))
|
||||
|
||||
protected static readonly s2: number;
|
||||
>s2 : Symbol(C.s2, Decl(readonlyInDeclarationFile.ts, 20, 39))
|
||||
|
||||
public static readonly s3: number;
|
||||
>s3 : Symbol(C.s3, Decl(readonlyInDeclarationFile.ts, 21, 41))
|
||||
|
||||
private static get t1() { return 1 }
|
||||
>t1 : Symbol(C.t1, Decl(readonlyInDeclarationFile.ts, 22, 38))
|
||||
|
||||
protected static get t2() { return 1 }
|
||||
>t2 : Symbol(C.t2, Decl(readonlyInDeclarationFile.ts, 23, 40))
|
||||
|
||||
public static get t3() { return 1 }
|
||||
>t3 : Symbol(C.t3, Decl(readonlyInDeclarationFile.ts, 24, 42))
|
||||
|
||||
private static get u1() { return 1 }
|
||||
>u1 : Symbol(C.u1, Decl(readonlyInDeclarationFile.ts, 25, 39), Decl(readonlyInDeclarationFile.ts, 26, 40))
|
||||
|
||||
private static set u1(value) { }
|
||||
>u1 : Symbol(C.u1, Decl(readonlyInDeclarationFile.ts, 25, 39), Decl(readonlyInDeclarationFile.ts, 26, 40))
|
||||
>value : Symbol(value, Decl(readonlyInDeclarationFile.ts, 27, 26))
|
||||
|
||||
protected static get u2() { return 1 }
|
||||
>u2 : Symbol(C.u2, Decl(readonlyInDeclarationFile.ts, 27, 36), Decl(readonlyInDeclarationFile.ts, 28, 42))
|
||||
|
||||
protected static set u2(value) { }
|
||||
>u2 : Symbol(C.u2, Decl(readonlyInDeclarationFile.ts, 27, 36), Decl(readonlyInDeclarationFile.ts, 28, 42))
|
||||
>value : Symbol(value, Decl(readonlyInDeclarationFile.ts, 29, 28))
|
||||
|
||||
public static get u3() { return 1 }
|
||||
>u3 : Symbol(C.u3, Decl(readonlyInDeclarationFile.ts, 29, 38), Decl(readonlyInDeclarationFile.ts, 30, 39))
|
||||
|
||||
public static set u3(value) { }
|
||||
>u3 : Symbol(C.u3, Decl(readonlyInDeclarationFile.ts, 29, 38), Decl(readonlyInDeclarationFile.ts, 30, 39))
|
||||
>value : Symbol(value, Decl(readonlyInDeclarationFile.ts, 31, 25))
|
||||
}
|
||||
|
||||
var z: {
|
||||
>z : Symbol(z, Decl(readonlyInDeclarationFile.ts, 34, 3))
|
||||
|
||||
readonly a: string;
|
||||
>a : Symbol(a, Decl(readonlyInDeclarationFile.ts, 34, 8))
|
||||
|
||||
readonly [x: string]: Object;
|
||||
>x : Symbol(x, Decl(readonlyInDeclarationFile.ts, 36, 14))
|
||||
>Object : Symbol(Object, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
|
||||
}
|
||||
|
||||
function f() {
|
||||
>f : Symbol(f, Decl(readonlyInDeclarationFile.ts, 37, 1))
|
||||
|
||||
return {
|
||||
get x() { return 1; },
|
||||
>x : Symbol(x, Decl(readonlyInDeclarationFile.ts, 40, 12))
|
||||
|
||||
get y() { return 1; },
|
||||
>y : Symbol(y, Decl(readonlyInDeclarationFile.ts, 41, 30), Decl(readonlyInDeclarationFile.ts, 42, 30))
|
||||
|
||||
set y(value) { }
|
||||
>y : Symbol(y, Decl(readonlyInDeclarationFile.ts, 41, 30), Decl(readonlyInDeclarationFile.ts, 42, 30))
|
||||
>value : Symbol(value, Decl(readonlyInDeclarationFile.ts, 43, 14))
|
||||
}
|
||||
}
|
||||
|
||||
function g() {
|
||||
>g : Symbol(g, Decl(readonlyInDeclarationFile.ts, 45, 1))
|
||||
|
||||
var x: {
|
||||
>x : Symbol(x, Decl(readonlyInDeclarationFile.ts, 48, 7))
|
||||
|
||||
readonly a: string;
|
||||
>a : Symbol(a, Decl(readonlyInDeclarationFile.ts, 48, 12))
|
||||
|
||||
readonly [x: string]: Object;
|
||||
>x : Symbol(x, Decl(readonlyInDeclarationFile.ts, 50, 18))
|
||||
>Object : Symbol(Object, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
|
||||
}
|
||||
return x;
|
||||
>x : Symbol(x, Decl(readonlyInDeclarationFile.ts, 48, 7))
|
||||
}
|
158
tests/baselines/reference/readonlyInDeclarationFile.types
Normal file
158
tests/baselines/reference/readonlyInDeclarationFile.types
Normal file
|
@ -0,0 +1,158 @@
|
|||
=== tests/cases/compiler/readonlyInDeclarationFile.ts ===
|
||||
|
||||
interface Foo {
|
||||
>Foo : Foo
|
||||
|
||||
readonly x: number;
|
||||
>x : number
|
||||
|
||||
readonly [x: string]: Object;
|
||||
>x : string
|
||||
>Object : Object
|
||||
}
|
||||
|
||||
class C {
|
||||
>C : C
|
||||
|
||||
readonly [x: string]: Object;
|
||||
>x : string
|
||||
>Object : Object
|
||||
|
||||
private readonly a1: number;
|
||||
>a1 : number
|
||||
|
||||
protected readonly a2: number;
|
||||
>a2 : number
|
||||
|
||||
public readonly a3: number;
|
||||
>a3 : number
|
||||
|
||||
private get b1() { return 1 }
|
||||
>b1 : number
|
||||
>1 : number
|
||||
|
||||
protected get b2() { return 1 }
|
||||
>b2 : number
|
||||
>1 : number
|
||||
|
||||
public get b3() { return 1 }
|
||||
>b3 : number
|
||||
>1 : number
|
||||
|
||||
private get c1() { return 1 }
|
||||
>c1 : number
|
||||
>1 : number
|
||||
|
||||
private set c1(value) { }
|
||||
>c1 : number
|
||||
>value : number
|
||||
|
||||
protected get c2() { return 1 }
|
||||
>c2 : number
|
||||
>1 : number
|
||||
|
||||
protected set c2(value) { }
|
||||
>c2 : number
|
||||
>value : number
|
||||
|
||||
public get c3() { return 1 }
|
||||
>c3 : number
|
||||
>1 : number
|
||||
|
||||
public set c3(value) { }
|
||||
>c3 : number
|
||||
>value : number
|
||||
|
||||
private static readonly s1: number;
|
||||
>s1 : number
|
||||
|
||||
protected static readonly s2: number;
|
||||
>s2 : number
|
||||
|
||||
public static readonly s3: number;
|
||||
>s3 : number
|
||||
|
||||
private static get t1() { return 1 }
|
||||
>t1 : number
|
||||
>1 : number
|
||||
|
||||
protected static get t2() { return 1 }
|
||||
>t2 : number
|
||||
>1 : number
|
||||
|
||||
public static get t3() { return 1 }
|
||||
>t3 : number
|
||||
>1 : number
|
||||
|
||||
private static get u1() { return 1 }
|
||||
>u1 : number
|
||||
>1 : number
|
||||
|
||||
private static set u1(value) { }
|
||||
>u1 : number
|
||||
>value : number
|
||||
|
||||
protected static get u2() { return 1 }
|
||||
>u2 : number
|
||||
>1 : number
|
||||
|
||||
protected static set u2(value) { }
|
||||
>u2 : number
|
||||
>value : number
|
||||
|
||||
public static get u3() { return 1 }
|
||||
>u3 : number
|
||||
>1 : number
|
||||
|
||||
public static set u3(value) { }
|
||||
>u3 : number
|
||||
>value : number
|
||||
}
|
||||
|
||||
var z: {
|
||||
>z : { readonly [x: string]: Object; readonly a: string; }
|
||||
|
||||
readonly a: string;
|
||||
>a : string
|
||||
|
||||
readonly [x: string]: Object;
|
||||
>x : string
|
||||
>Object : Object
|
||||
}
|
||||
|
||||
function f() {
|
||||
>f : () => { readonly x: number; y: number; }
|
||||
|
||||
return {
|
||||
>{ get x() { return 1; }, get y() { return 1; }, set y(value) { } } : { readonly x: number; y: number; }
|
||||
|
||||
get x() { return 1; },
|
||||
>x : number
|
||||
>1 : number
|
||||
|
||||
get y() { return 1; },
|
||||
>y : number
|
||||
>1 : number
|
||||
|
||||
set y(value) { }
|
||||
>y : number
|
||||
>value : number
|
||||
}
|
||||
}
|
||||
|
||||
function g() {
|
||||
>g : () => { readonly [x: string]: Object; readonly a: string; }
|
||||
|
||||
var x: {
|
||||
>x : { readonly [x: string]: Object; readonly a: string; }
|
||||
|
||||
readonly a: string;
|
||||
>a : string
|
||||
|
||||
readonly [x: string]: Object;
|
||||
>x : string
|
||||
>Object : Object
|
||||
}
|
||||
return x;
|
||||
>x : { readonly [x: string]: Object; readonly a: string; }
|
||||
}
|
|
@ -13,6 +13,6 @@ class C {
|
|||
|
||||
//// [symbolDeclarationEmit13.d.ts]
|
||||
declare class C {
|
||||
[Symbol.toPrimitive]: string;
|
||||
readonly [Symbol.toPrimitive]: string;
|
||||
[Symbol.toStringTag]: any;
|
||||
}
|
||||
|
|
|
@ -13,6 +13,6 @@ class C {
|
|||
|
||||
//// [symbolDeclarationEmit14.d.ts]
|
||||
declare class C {
|
||||
[Symbol.toPrimitive]: string;
|
||||
[Symbol.toStringTag]: string;
|
||||
readonly [Symbol.toPrimitive]: string;
|
||||
readonly [Symbol.toStringTag]: string;
|
||||
}
|
||||
|
|
|
@ -170,7 +170,7 @@ declare namespace Test {
|
|||
path: string;
|
||||
isFSO: this is FileSystemObject;
|
||||
isFile: this is File;
|
||||
isDirectory: this is Directory;
|
||||
readonly isDirectory: this is Directory;
|
||||
isNetworked: this is (Networked & this);
|
||||
constructor(path: string);
|
||||
}
|
||||
|
|
|
@ -95,7 +95,7 @@ declare namespace Test {
|
|||
path: string;
|
||||
isFSO: this is FileSystemObject;
|
||||
isFile: this is File;
|
||||
isDirectory: this is Directory;
|
||||
readonly isDirectory: this is Directory;
|
||||
isNetworked: this is (Networked & this);
|
||||
constructor(path: string);
|
||||
}
|
||||
|
|
9
tests/cases/compiler/deduplicateImportsInSystem.ts
Normal file
9
tests/cases/compiler/deduplicateImportsInSystem.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
// @module: system
|
||||
import {A} from "f1";
|
||||
import {B} from "f2";
|
||||
import {C} from "f3";
|
||||
import {D} from 'f2';
|
||||
import {E} from "f2";
|
||||
import {F} from 'f1';
|
||||
|
||||
console.log(A + B + C + D + E + F)
|
56
tests/cases/compiler/readonlyInDeclarationFile.ts
Normal file
56
tests/cases/compiler/readonlyInDeclarationFile.ts
Normal file
|
@ -0,0 +1,56 @@
|
|||
// @target: es5
|
||||
// @declaration: true
|
||||
|
||||
interface Foo {
|
||||
readonly x: number;
|
||||
readonly [x: string]: Object;
|
||||
}
|
||||
|
||||
class C {
|
||||
readonly [x: string]: Object;
|
||||
private readonly a1: number;
|
||||
protected readonly a2: number;
|
||||
public readonly a3: number;
|
||||
private get b1() { return 1 }
|
||||
protected get b2() { return 1 }
|
||||
public get b3() { return 1 }
|
||||
private get c1() { return 1 }
|
||||
private set c1(value) { }
|
||||
protected get c2() { return 1 }
|
||||
protected set c2(value) { }
|
||||
public get c3() { return 1 }
|
||||
public set c3(value) { }
|
||||
private static readonly s1: number;
|
||||
protected static readonly s2: number;
|
||||
public static readonly s3: number;
|
||||
private static get t1() { return 1 }
|
||||
protected static get t2() { return 1 }
|
||||
public static get t3() { return 1 }
|
||||
private static get u1() { return 1 }
|
||||
private static set u1(value) { }
|
||||
protected static get u2() { return 1 }
|
||||
protected static set u2(value) { }
|
||||
public static get u3() { return 1 }
|
||||
public static set u3(value) { }
|
||||
}
|
||||
|
||||
var z: {
|
||||
readonly a: string;
|
||||
readonly [x: string]: Object;
|
||||
}
|
||||
|
||||
function f() {
|
||||
return {
|
||||
get x() { return 1; },
|
||||
get y() { return 1; },
|
||||
set y(value) { }
|
||||
}
|
||||
}
|
||||
|
||||
function g() {
|
||||
var x: {
|
||||
readonly a: string;
|
||||
readonly [x: string]: Object;
|
||||
}
|
||||
return x;
|
||||
}
|
21
tests/cases/fourslash/getJavaScriptCompletions18.ts
Normal file
21
tests/cases/fourslash/getJavaScriptCompletions18.ts
Normal file
|
@ -0,0 +1,21 @@
|
|||
/// <reference path="fourslash.ts" />
|
||||
|
||||
// @allowNonTsExtensions: true
|
||||
// @Filename: file.js
|
||||
//// /**
|
||||
//// * @param {number} a
|
||||
//// * @param {string} b
|
||||
//// */
|
||||
//// exports.foo = function(a, b) {
|
||||
//// a/*a*/;
|
||||
//// b/*b*/
|
||||
//// };
|
||||
|
||||
goTo.marker('a');
|
||||
edit.insert('.');
|
||||
verify.completionListContains('toFixed', undefined, undefined, 'method');
|
||||
|
||||
|
||||
goTo.marker('b');
|
||||
edit.insert('.');
|
||||
verify.completionListContains('substr', undefined, undefined, 'method');
|
25
tests/cases/fourslash/getJavaScriptCompletions19.ts
Normal file
25
tests/cases/fourslash/getJavaScriptCompletions19.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
/// <reference path="fourslash.ts" />
|
||||
|
||||
// @allowNonTsExtensions: true
|
||||
// @Filename: file.js
|
||||
//// function fn() {
|
||||
//// if (foo) {
|
||||
//// return 0;
|
||||
//// } else {
|
||||
//// return '0';
|
||||
//// }
|
||||
//// }
|
||||
//// let x = fn();
|
||||
//// if(typeof x === 'string') {
|
||||
//// x/*str*/
|
||||
//// } else {
|
||||
//// x/*num*/
|
||||
//// }
|
||||
|
||||
goTo.marker('str');
|
||||
edit.insert('.');
|
||||
verify.completionListContains('substr', undefined, undefined, 'method');
|
||||
|
||||
goTo.marker('num');
|
||||
edit.insert('.');
|
||||
verify.completionListContains('toFixed', undefined, undefined, 'method');
|
12
tests/cases/fourslash/renameCrossJsTs01.ts
Normal file
12
tests/cases/fourslash/renameCrossJsTs01.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
// @allowJs: true
|
||||
// @Filename: a.js
|
||||
////exports.[|area|] = function (r) { return r * r; }
|
||||
|
||||
// @Filename: b.ts
|
||||
////import { [|area|] } from './a';
|
||||
////var t = /**/[|area|](10);
|
||||
|
||||
goTo.marker();
|
||||
verify.renameLocations( /*findInStrings*/ false, /*findInComments*/ false);
|
12
tests/cases/fourslash/renameCrossJsTs02.ts
Normal file
12
tests/cases/fourslash/renameCrossJsTs02.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
// @allowJs: true
|
||||
// @Filename: a.js
|
||||
////exports./**/[|area|] = function (r) { return r * r; }
|
||||
|
||||
// @Filename: b.ts
|
||||
////import { [|area|] } from './a';
|
||||
////var t = [|area|](10);
|
||||
|
||||
goTo.marker();
|
||||
verify.renameLocations( /*findInStrings*/ false, /*findInComments*/ false);
|
12
tests/cases/fourslash/renameJsExports01.ts
Normal file
12
tests/cases/fourslash/renameJsExports01.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
// @allowJs: true
|
||||
// @Filename: a.js
|
||||
////exports.[|area|] = function (r) { return r * r; }
|
||||
|
||||
// @Filename: b.js
|
||||
////var mod = require('./a');
|
||||
////var t = mod./**/[|area|](10);
|
||||
|
||||
goTo.marker();
|
||||
verify.renameLocations( /*findInStrings*/ false, /*findInComments*/ false);
|
12
tests/cases/fourslash/renameJsExports02.ts
Normal file
12
tests/cases/fourslash/renameJsExports02.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
// @allowJs: true
|
||||
// @Filename: a.js
|
||||
////exports./**/[|area|] = function (r) { return r * r; }
|
||||
|
||||
// @Filename: b.js
|
||||
////var mod = require('./a');
|
||||
////var t = mod.[|area|](10);
|
||||
|
||||
goTo.marker();
|
||||
verify.renameLocations( /*findInStrings*/ false, /*findInComments*/ false);
|
12
tests/cases/fourslash/renameJsPrototypeProperty01.ts
Normal file
12
tests/cases/fourslash/renameJsPrototypeProperty01.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
// @allowJs: true
|
||||
// @Filename: a.js
|
||||
////function bar() {
|
||||
////}
|
||||
////bar.prototype.[|x|] = 10;
|
||||
////var t = new bar();
|
||||
////t./**/[|x|] = 11;
|
||||
|
||||
goTo.marker();
|
||||
verify.renameLocations( /*findInStrings*/ false, /*findInComments*/ false);
|
12
tests/cases/fourslash/renameJsPrototypeProperty02.ts
Normal file
12
tests/cases/fourslash/renameJsPrototypeProperty02.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
// @allowJs: true
|
||||
// @Filename: a.js
|
||||
////function bar() {
|
||||
////}
|
||||
////bar.prototype./**/[|x|] = 10;
|
||||
////var t = new bar();
|
||||
////t.[|x|] = 11;
|
||||
|
||||
goTo.marker();
|
||||
verify.renameLocations( /*findInStrings*/ false, /*findInComments*/ false);
|
12
tests/cases/fourslash/renameJsThisProperty01.ts
Normal file
12
tests/cases/fourslash/renameJsThisProperty01.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
// @allowJs: true
|
||||
// @Filename: a.js
|
||||
////function bar() {
|
||||
//// this.[|x|] = 10;
|
||||
////}
|
||||
////var t = new bar();
|
||||
////t./**/[|x|] = 11;
|
||||
|
||||
goTo.marker();
|
||||
verify.renameLocations( /*findInStrings*/ false, /*findInComments*/ false);
|
12
tests/cases/fourslash/renameJsThisProperty02.ts
Normal file
12
tests/cases/fourslash/renameJsThisProperty02.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
// @allowJs: true
|
||||
// @Filename: a.js
|
||||
////function bar() {
|
||||
//// this./**/[|x|] = 10;
|
||||
////}
|
||||
////var t = new bar();
|
||||
////t.[|x|] = 11;
|
||||
|
||||
goTo.marker();
|
||||
verify.renameLocations( /*findInStrings*/ false, /*findInComments*/ false);
|
Loading…
Reference in a new issue