Cleanup of duplicate code due to merge
This commit is contained in:
parent
ea15225a9e
commit
a60d5912a9
|
@ -11387,7 +11387,7 @@ module ts {
|
|||
return grammarErrorOnNode(node, Diagnostics.Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher);
|
||||
}
|
||||
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) {
|
||||
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;
|
||||
}
|
||||
|
||||
export function foldLeft<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 foldLeft<T, U>(array: T[], f: (a: U, x: T) => U, initial?: U): U {
|
||||
export function reduceLeft<T>(array: T[], f: (a: T, x: T) => T): T;
|
||||
export function reduceLeft<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) {
|
||||
var count = array.length;
|
||||
if (count > 0) {
|
||||
|
@ -179,9 +179,9 @@ module ts {
|
|||
return initial;
|
||||
}
|
||||
|
||||
export function foldRight<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 foldRight<T, U>(array: T[], f: (a: U, x: T) => U, initial?: U): U {
|
||||
export function reduceRight<T>(array: T[], f: (a: T, x: T) => T): T;
|
||||
export function reduceRight<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) {
|
||||
var pos = array.length - 1;
|
||||
if (pos >= 0) {
|
||||
|
|
|
@ -21,7 +21,6 @@ module ts {
|
|||
|
||||
// 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.
|
||||
let accessors = getAllAccessorDeclarations((<ClassDeclaration>node.parent).members, node);
|
||||
const enum TempVariableKind {
|
||||
auto = 0,
|
||||
_i = 1,
|
||||
|
@ -1497,7 +1496,7 @@ module ts {
|
|||
|
||||
case SyntaxKind.GetAccessor:
|
||||
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.
|
||||
if (firstAccessor !== property) {
|
||||
|
@ -3327,7 +3326,7 @@ module ts {
|
|||
emitTrailingComments(member);
|
||||
}
|
||||
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) {
|
||||
writeLine();
|
||||
emitStart(member);
|
||||
|
@ -3815,7 +3814,7 @@ module ts {
|
|||
|
||||
case SyntaxKind.GetAccessor:
|
||||
case SyntaxKind.SetAccessor:
|
||||
let accessors = mergeAccessorDeclarations(node.members, <AccessorDeclaration>member);
|
||||
let accessors = getAllAccessorDeclarations(node.members, <AccessorDeclaration>member);
|
||||
if (member !== accessors.firstAccessor) {
|
||||
// skip the second accessor as we processed it with the first.
|
||||
return;
|
||||
|
|
|
@ -542,14 +542,6 @@ module ts {
|
|||
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 {
|
||||
_indexSignatureDeclarationBrand: any;
|
||||
}
|
||||
|
|
|
@ -575,56 +575,6 @@ module ts {
|
|||
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 {
|
||||
switch (node.kind) {
|
||||
case SyntaxKind.ClassDeclaration:
|
||||
|
@ -1626,6 +1576,7 @@ module ts {
|
|||
|
||||
export function getAllAccessorDeclarations(declarations: NodeArray<Declaration>, accessor: AccessorDeclaration) {
|
||||
let firstAccessor: AccessorDeclaration;
|
||||
let secondAccessor: AccessorDeclaration;
|
||||
let getAccessor: AccessorDeclaration;
|
||||
let setAccessor: AccessorDeclaration;
|
||||
if (hasDynamicName(accessor)) {
|
||||
|
@ -1650,6 +1601,9 @@ module ts {
|
|||
if (!firstAccessor) {
|
||||
firstAccessor = <AccessorDeclaration>member;
|
||||
}
|
||||
else if (!secondAccessor) {
|
||||
secondAccessor = <AccessorDeclaration>member;
|
||||
}
|
||||
|
||||
if (member.kind === SyntaxKind.GetAccessor && !getAccessor) {
|
||||
getAccessor = <AccessorDeclaration>member;
|
||||
|
@ -1664,6 +1618,7 @@ module ts {
|
|||
}
|
||||
return {
|
||||
firstAccessor,
|
||||
secondAccessor,
|
||||
getAccessor,
|
||||
setAccessor
|
||||
};
|
||||
|
|
|
@ -472,12 +472,6 @@ declare module "typescript" {
|
|||
_accessorDeclarationBrand: any;
|
||||
body: Block;
|
||||
}
|
||||
interface MergedAccessorDeclarations {
|
||||
getAccessor: AccessorDeclaration;
|
||||
setAccessor: AccessorDeclaration;
|
||||
firstAccessor: AccessorDeclaration;
|
||||
secondAccessor: AccessorDeclaration;
|
||||
}
|
||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||
_indexSignatureDeclarationBrand: any;
|
||||
}
|
||||
|
|
|
@ -1440,25 +1440,6 @@ declare module "typescript" {
|
|||
body: Block;
|
||||
>body : 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 {
|
||||
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
||||
|
|
|
@ -503,12 +503,6 @@ declare module "typescript" {
|
|||
_accessorDeclarationBrand: any;
|
||||
body: Block;
|
||||
}
|
||||
interface MergedAccessorDeclarations {
|
||||
getAccessor: AccessorDeclaration;
|
||||
setAccessor: AccessorDeclaration;
|
||||
firstAccessor: AccessorDeclaration;
|
||||
secondAccessor: AccessorDeclaration;
|
||||
}
|
||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||
_indexSignatureDeclarationBrand: any;
|
||||
}
|
||||
|
|
|
@ -1586,25 +1586,6 @@ declare module "typescript" {
|
|||
body: Block;
|
||||
>body : 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 {
|
||||
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
||||
|
|
|
@ -504,12 +504,6 @@ declare module "typescript" {
|
|||
_accessorDeclarationBrand: any;
|
||||
body: Block;
|
||||
}
|
||||
interface MergedAccessorDeclarations {
|
||||
getAccessor: AccessorDeclaration;
|
||||
setAccessor: AccessorDeclaration;
|
||||
firstAccessor: AccessorDeclaration;
|
||||
secondAccessor: AccessorDeclaration;
|
||||
}
|
||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||
_indexSignatureDeclarationBrand: any;
|
||||
}
|
||||
|
|
|
@ -1536,25 +1536,6 @@ declare module "typescript" {
|
|||
body: Block;
|
||||
>body : 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 {
|
||||
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
||||
|
|
|
@ -541,12 +541,6 @@ declare module "typescript" {
|
|||
_accessorDeclarationBrand: any;
|
||||
body: Block;
|
||||
}
|
||||
interface MergedAccessorDeclarations {
|
||||
getAccessor: AccessorDeclaration;
|
||||
setAccessor: AccessorDeclaration;
|
||||
firstAccessor: AccessorDeclaration;
|
||||
secondAccessor: AccessorDeclaration;
|
||||
}
|
||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||
_indexSignatureDeclarationBrand: any;
|
||||
}
|
||||
|
|
|
@ -1709,25 +1709,6 @@ declare module "typescript" {
|
|||
body: Block;
|
||||
>body : 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 {
|
||||
>IndexSignatureDeclaration : IndexSignatureDeclaration
|
||||
|
|
Loading…
Reference in a new issue