Cleanup of duplicate code due to merge
This commit is contained in:
parent
ea15225a9e
commit
a60d5912a9
14 changed files with 16 additions and 170 deletions
|
@ -11387,7 +11387,7 @@ module ts {
|
||||||
return grammarErrorOnNode(node, Diagnostics.Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher);
|
return grammarErrorOnNode(node, Diagnostics.Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher);
|
||||||
}
|
}
|
||||||
else if (node.kind === SyntaxKind.GetAccessor || node.kind === SyntaxKind.SetAccessor) {
|
else if (node.kind === SyntaxKind.GetAccessor || node.kind === SyntaxKind.SetAccessor) {
|
||||||
let accessors = mergeAccessorDeclarations((<ClassDeclaration>node.parent).members, <AccessorDeclaration>node);
|
let accessors = getAllAccessorDeclarations((<ClassDeclaration>node.parent).members, <AccessorDeclaration>node);
|
||||||
if (accessors.firstAccessor.decorators && node === accessors.secondAccessor) {
|
if (accessors.firstAccessor.decorators && node === accessors.secondAccessor) {
|
||||||
return grammarErrorOnNode(node, Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name);
|
return grammarErrorOnNode(node, Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name);
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,9 +162,9 @@ module ts {
|
||||||
return ~low;
|
return ~low;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function foldLeft<T>(array: T[], f: (a: T, x: T) => T): T;
|
export function reduceLeft<T>(array: T[], f: (a: T, x: T) => T): T;
|
||||||
export function foldLeft<T, U>(array: T[], f: (a: U, x: T) => U, initial: U): U;
|
export function reduceLeft<T, U>(array: T[], f: (a: U, x: T) => U, initial: U): U;
|
||||||
export function foldLeft<T, U>(array: T[], f: (a: U, x: T) => U, initial?: U): U {
|
export function reduceLeft<T, U>(array: T[], f: (a: U, x: T) => U, initial?: U): U {
|
||||||
if (array) {
|
if (array) {
|
||||||
var count = array.length;
|
var count = array.length;
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
|
@ -179,9 +179,9 @@ module ts {
|
||||||
return initial;
|
return initial;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function foldRight<T>(array: T[], f: (a: T, x: T) => T): T;
|
export function reduceRight<T>(array: T[], f: (a: T, x: T) => T): T;
|
||||||
export function foldRight<T, U>(array: T[], f: (a: U, x: T) => U, initial: U): U;
|
export function reduceRight<T, U>(array: T[], f: (a: U, x: T) => U, initial: U): U;
|
||||||
export function foldRight<T, U>(array: T[], f: (a: U, x: T) => U, initial?: U): U {
|
export function reduceRight<T, U>(array: T[], f: (a: U, x: T) => U, initial?: U): U {
|
||||||
if (array) {
|
if (array) {
|
||||||
var pos = array.length - 1;
|
var pos = array.length - 1;
|
||||||
if (pos >= 0) {
|
if (pos >= 0) {
|
||||||
|
|
|
@ -21,7 +21,6 @@ module ts {
|
||||||
|
|
||||||
// flag enum used to request and track usages of few dedicated temp variables
|
// flag enum used to request and track usages of few dedicated temp variables
|
||||||
// enum values are used to set/check bit values and thus should not have bit collisions.
|
// enum values are used to set/check bit values and thus should not have bit collisions.
|
||||||
let accessors = getAllAccessorDeclarations((<ClassDeclaration>node.parent).members, node);
|
|
||||||
const enum TempVariableKind {
|
const enum TempVariableKind {
|
||||||
auto = 0,
|
auto = 0,
|
||||||
_i = 1,
|
_i = 1,
|
||||||
|
@ -1497,7 +1496,7 @@ module ts {
|
||||||
|
|
||||||
case SyntaxKind.GetAccessor:
|
case SyntaxKind.GetAccessor:
|
||||||
case SyntaxKind.SetAccessor:
|
case SyntaxKind.SetAccessor:
|
||||||
let { firstAccessor, getAccessor, setAccessor } = mergeAccessorDeclarations(objectLiteral.properties, <AccessorDeclaration>property);
|
let { firstAccessor, getAccessor, setAccessor } = getAllAccessorDeclarations(objectLiteral.properties, <AccessorDeclaration>property);
|
||||||
|
|
||||||
// Only emit the first accessor.
|
// Only emit the first accessor.
|
||||||
if (firstAccessor !== property) {
|
if (firstAccessor !== property) {
|
||||||
|
@ -3327,7 +3326,7 @@ module ts {
|
||||||
emitTrailingComments(member);
|
emitTrailingComments(member);
|
||||||
}
|
}
|
||||||
else if (member.kind === SyntaxKind.GetAccessor || member.kind === SyntaxKind.SetAccessor) {
|
else if (member.kind === SyntaxKind.GetAccessor || member.kind === SyntaxKind.SetAccessor) {
|
||||||
let accessors = mergeAccessorDeclarations(node.members, <AccessorDeclaration>member);
|
let accessors = getAllAccessorDeclarations(node.members, <AccessorDeclaration>member);
|
||||||
if (member === accessors.firstAccessor) {
|
if (member === accessors.firstAccessor) {
|
||||||
writeLine();
|
writeLine();
|
||||||
emitStart(member);
|
emitStart(member);
|
||||||
|
@ -3815,7 +3814,7 @@ module ts {
|
||||||
|
|
||||||
case SyntaxKind.GetAccessor:
|
case SyntaxKind.GetAccessor:
|
||||||
case SyntaxKind.SetAccessor:
|
case SyntaxKind.SetAccessor:
|
||||||
let accessors = mergeAccessorDeclarations(node.members, <AccessorDeclaration>member);
|
let accessors = getAllAccessorDeclarations(node.members, <AccessorDeclaration>member);
|
||||||
if (member !== accessors.firstAccessor) {
|
if (member !== accessors.firstAccessor) {
|
||||||
// skip the second accessor as we processed it with the first.
|
// skip the second accessor as we processed it with the first.
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -542,14 +542,6 @@ module ts {
|
||||||
body: Block;
|
body: Block;
|
||||||
}
|
}
|
||||||
|
|
||||||
// A merged view of get/set accessors
|
|
||||||
export interface MergedAccessorDeclarations {
|
|
||||||
getAccessor: AccessorDeclaration;
|
|
||||||
setAccessor: AccessorDeclaration;
|
|
||||||
firstAccessor: AccessorDeclaration;
|
|
||||||
secondAccessor: AccessorDeclaration;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
export interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||||
_indexSignatureDeclarationBrand: any;
|
_indexSignatureDeclarationBrand: any;
|
||||||
}
|
}
|
||||||
|
|
|
@ -575,56 +575,6 @@ module ts {
|
||||||
return (<CallExpression>node).expression;
|
return (<CallExpression>node).expression;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function mergeAccessorDeclarations(declarations: NodeArray<Declaration>, accessor: AccessorDeclaration): MergedAccessorDeclarations {
|
|
||||||
let firstAccessor: AccessorDeclaration;
|
|
||||||
let secondAccessor: AccessorDeclaration;
|
|
||||||
let getAccessor: AccessorDeclaration;
|
|
||||||
let setAccessor: AccessorDeclaration;
|
|
||||||
if (hasDynamicName(accessor)) {
|
|
||||||
firstAccessor = accessor;
|
|
||||||
if (accessor.kind === SyntaxKind.GetAccessor) {
|
|
||||||
getAccessor = accessor;
|
|
||||||
}
|
|
||||||
else if (accessor.kind === SyntaxKind.SetAccessor) {
|
|
||||||
setAccessor = accessor;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Debug.fail("Accessor has wrong kind");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
forEach(declarations, (member: Declaration) => {
|
|
||||||
if ((member.kind === SyntaxKind.GetAccessor || member.kind === SyntaxKind.SetAccessor)
|
|
||||||
&& (member.flags & NodeFlags.Static) === (accessor.flags & NodeFlags.Static)) {
|
|
||||||
let memberName = getPropertyNameForPropertyNameNode(member.name);
|
|
||||||
let accessorName = getPropertyNameForPropertyNameNode(accessor.name);
|
|
||||||
if (memberName === accessorName) {
|
|
||||||
if (!firstAccessor) {
|
|
||||||
firstAccessor = <AccessorDeclaration>member;
|
|
||||||
}
|
|
||||||
else if (!secondAccessor) {
|
|
||||||
secondAccessor = <AccessorDeclaration>member;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (member.kind === SyntaxKind.GetAccessor && !getAccessor) {
|
|
||||||
getAccessor = <AccessorDeclaration>member;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (member.kind === SyntaxKind.SetAccessor && !setAccessor) {
|
|
||||||
setAccessor = <AccessorDeclaration>member;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
firstAccessor,
|
|
||||||
secondAccessor,
|
|
||||||
getAccessor,
|
|
||||||
setAccessor
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function nodeCanBeDecorated(node: Node): boolean {
|
export function nodeCanBeDecorated(node: Node): boolean {
|
||||||
switch (node.kind) {
|
switch (node.kind) {
|
||||||
case SyntaxKind.ClassDeclaration:
|
case SyntaxKind.ClassDeclaration:
|
||||||
|
@ -1626,6 +1576,7 @@ module ts {
|
||||||
|
|
||||||
export function getAllAccessorDeclarations(declarations: NodeArray<Declaration>, accessor: AccessorDeclaration) {
|
export function getAllAccessorDeclarations(declarations: NodeArray<Declaration>, accessor: AccessorDeclaration) {
|
||||||
let firstAccessor: AccessorDeclaration;
|
let firstAccessor: AccessorDeclaration;
|
||||||
|
let secondAccessor: AccessorDeclaration;
|
||||||
let getAccessor: AccessorDeclaration;
|
let getAccessor: AccessorDeclaration;
|
||||||
let setAccessor: AccessorDeclaration;
|
let setAccessor: AccessorDeclaration;
|
||||||
if (hasDynamicName(accessor)) {
|
if (hasDynamicName(accessor)) {
|
||||||
|
@ -1650,6 +1601,9 @@ module ts {
|
||||||
if (!firstAccessor) {
|
if (!firstAccessor) {
|
||||||
firstAccessor = <AccessorDeclaration>member;
|
firstAccessor = <AccessorDeclaration>member;
|
||||||
}
|
}
|
||||||
|
else if (!secondAccessor) {
|
||||||
|
secondAccessor = <AccessorDeclaration>member;
|
||||||
|
}
|
||||||
|
|
||||||
if (member.kind === SyntaxKind.GetAccessor && !getAccessor) {
|
if (member.kind === SyntaxKind.GetAccessor && !getAccessor) {
|
||||||
getAccessor = <AccessorDeclaration>member;
|
getAccessor = <AccessorDeclaration>member;
|
||||||
|
@ -1664,6 +1618,7 @@ module ts {
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
firstAccessor,
|
firstAccessor,
|
||||||
|
secondAccessor,
|
||||||
getAccessor,
|
getAccessor,
|
||||||
setAccessor
|
setAccessor
|
||||||
};
|
};
|
||||||
|
|
|
@ -472,12 +472,6 @@ declare module "typescript" {
|
||||||
_accessorDeclarationBrand: any;
|
_accessorDeclarationBrand: any;
|
||||||
body: Block;
|
body: Block;
|
||||||
}
|
}
|
||||||
interface MergedAccessorDeclarations {
|
|
||||||
getAccessor: AccessorDeclaration;
|
|
||||||
setAccessor: AccessorDeclaration;
|
|
||||||
firstAccessor: AccessorDeclaration;
|
|
||||||
secondAccessor: AccessorDeclaration;
|
|
||||||
}
|
|
||||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||||
_indexSignatureDeclarationBrand: any;
|
_indexSignatureDeclarationBrand: any;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1440,25 +1440,6 @@ declare module "typescript" {
|
||||||
body: Block;
|
body: Block;
|
||||||
>body : Block
|
>body : Block
|
||||||
>Block : Block
|
>Block : Block
|
||||||
}
|
|
||||||
interface MergedAccessorDeclarations {
|
|
||||||
>MergedAccessorDeclarations : MergedAccessorDeclarations
|
|
||||||
|
|
||||||
getAccessor: AccessorDeclaration;
|
|
||||||
>getAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
setAccessor: AccessorDeclaration;
|
|
||||||
>setAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
firstAccessor: AccessorDeclaration;
|
|
||||||
>firstAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
secondAccessor: AccessorDeclaration;
|
|
||||||
>secondAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
}
|
}
|
||||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||||
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
||||||
|
|
|
@ -503,12 +503,6 @@ declare module "typescript" {
|
||||||
_accessorDeclarationBrand: any;
|
_accessorDeclarationBrand: any;
|
||||||
body: Block;
|
body: Block;
|
||||||
}
|
}
|
||||||
interface MergedAccessorDeclarations {
|
|
||||||
getAccessor: AccessorDeclaration;
|
|
||||||
setAccessor: AccessorDeclaration;
|
|
||||||
firstAccessor: AccessorDeclaration;
|
|
||||||
secondAccessor: AccessorDeclaration;
|
|
||||||
}
|
|
||||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||||
_indexSignatureDeclarationBrand: any;
|
_indexSignatureDeclarationBrand: any;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1586,25 +1586,6 @@ declare module "typescript" {
|
||||||
body: Block;
|
body: Block;
|
||||||
>body : Block
|
>body : Block
|
||||||
>Block : Block
|
>Block : Block
|
||||||
}
|
|
||||||
interface MergedAccessorDeclarations {
|
|
||||||
>MergedAccessorDeclarations : MergedAccessorDeclarations
|
|
||||||
|
|
||||||
getAccessor: AccessorDeclaration;
|
|
||||||
>getAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
setAccessor: AccessorDeclaration;
|
|
||||||
>setAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
firstAccessor: AccessorDeclaration;
|
|
||||||
>firstAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
secondAccessor: AccessorDeclaration;
|
|
||||||
>secondAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
}
|
}
|
||||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||||
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
||||||
|
|
|
@ -504,12 +504,6 @@ declare module "typescript" {
|
||||||
_accessorDeclarationBrand: any;
|
_accessorDeclarationBrand: any;
|
||||||
body: Block;
|
body: Block;
|
||||||
}
|
}
|
||||||
interface MergedAccessorDeclarations {
|
|
||||||
getAccessor: AccessorDeclaration;
|
|
||||||
setAccessor: AccessorDeclaration;
|
|
||||||
firstAccessor: AccessorDeclaration;
|
|
||||||
secondAccessor: AccessorDeclaration;
|
|
||||||
}
|
|
||||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||||
_indexSignatureDeclarationBrand: any;
|
_indexSignatureDeclarationBrand: any;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1536,25 +1536,6 @@ declare module "typescript" {
|
||||||
body: Block;
|
body: Block;
|
||||||
>body : Block
|
>body : Block
|
||||||
>Block : Block
|
>Block : Block
|
||||||
}
|
|
||||||
interface MergedAccessorDeclarations {
|
|
||||||
>MergedAccessorDeclarations : MergedAccessorDeclarations
|
|
||||||
|
|
||||||
getAccessor: AccessorDeclaration;
|
|
||||||
>getAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
setAccessor: AccessorDeclaration;
|
|
||||||
>setAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
firstAccessor: AccessorDeclaration;
|
|
||||||
>firstAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
secondAccessor: AccessorDeclaration;
|
|
||||||
>secondAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
}
|
}
|
||||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||||
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
||||||
|
|
|
@ -541,12 +541,6 @@ declare module "typescript" {
|
||||||
_accessorDeclarationBrand: any;
|
_accessorDeclarationBrand: any;
|
||||||
body: Block;
|
body: Block;
|
||||||
}
|
}
|
||||||
interface MergedAccessorDeclarations {
|
|
||||||
getAccessor: AccessorDeclaration;
|
|
||||||
setAccessor: AccessorDeclaration;
|
|
||||||
firstAccessor: AccessorDeclaration;
|
|
||||||
secondAccessor: AccessorDeclaration;
|
|
||||||
}
|
|
||||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||||
_indexSignatureDeclarationBrand: any;
|
_indexSignatureDeclarationBrand: any;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1709,25 +1709,6 @@ declare module "typescript" {
|
||||||
body: Block;
|
body: Block;
|
||||||
>body : Block
|
>body : Block
|
||||||
>Block : Block
|
>Block : Block
|
||||||
}
|
|
||||||
interface MergedAccessorDeclarations {
|
|
||||||
>MergedAccessorDeclarations : MergedAccessorDeclarations
|
|
||||||
|
|
||||||
getAccessor: AccessorDeclaration;
|
|
||||||
>getAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
setAccessor: AccessorDeclaration;
|
|
||||||
>setAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
firstAccessor: AccessorDeclaration;
|
|
||||||
>firstAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
|
|
||||||
secondAccessor: AccessorDeclaration;
|
|
||||||
>secondAccessor : AccessorDeclaration
|
|
||||||
>AccessorDeclaration : AccessorDeclaration
|
|
||||||
}
|
}
|
||||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||||
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
||||||
|
|
Loading…
Reference in a new issue