OLD | NEW |
1 import * as dartStyle from 'dart-style'; | 1 import * as dartStyle from 'dart-style'; |
2 import * as path from 'path'; | 2 import * as path from 'path'; |
3 import * as ts from 'typescript'; | 3 import * as ts from 'typescript'; |
4 | 4 |
5 import {OutputContext, Transpiler} from './main'; | 5 import {OutputContext, Transpiler} from './main'; |
6 | 6 |
7 /** | 7 /** |
8 * Map from identifier name to resolved type. | 8 * Map from identifier name to resolved type. |
9 * Example: 'E' should map to a TypeNode for number when resolving a usage of My
Array<number> | 9 * Example: 'E' should map to a TypeNode for number when resolving a usage of My
Array<number> |
10 * where MyArray is the alias type: | 10 * where MyArray is the alias type: |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 } | 242 } |
243 } | 243 } |
244 | 244 |
245 export function isCallable(decl: ClassLike): boolean { | 245 export function isCallable(decl: ClassLike): boolean { |
246 let members = decl.members as Array<ts.ClassElement>; | 246 let members = decl.members as Array<ts.ClassElement>; |
247 return members.some((member) => { | 247 return members.some((member) => { |
248 return member.kind === ts.SyntaxKind.CallSignature; | 248 return member.kind === ts.SyntaxKind.CallSignature; |
249 }); | 249 }); |
250 } | 250 } |
251 | 251 |
252 export function copyLocation(src: ts.TextRange, dest: ts.TextRange) { | 252 export function copyLocation(src: ts.Node, dest: ts.Node) { |
| 253 dest.pos = src.pos; |
| 254 dest.end = src.end; |
| 255 dest.parent = src.parent; |
| 256 } |
| 257 |
| 258 export function copyNodeArrayLocation(src: ts.TextRange, dest: ts.NodeArray<any>
) { |
253 dest.pos = src.pos; | 259 dest.pos = src.pos; |
254 dest.end = src.end; | 260 dest.end = src.end; |
255 } | 261 } |
256 | 262 |
257 // Polyfill for ES6 Array.find. | 263 // Polyfill for ES6 Array.find. |
258 export function arrayFindPolyfill<T>( | 264 export function arrayFindPolyfill<T>( |
259 nodeArray: ts.NodeArray<T>, predicate: (node: T) => boolean): T { | 265 nodeArray: ts.NodeArray<T>, predicate: (node: T) => boolean): T { |
260 for (let i = 0; i < nodeArray.length; ++i) { | 266 for (let i = 0; i < nodeArray.length; ++i) { |
261 if (predicate(nodeArray[i])) return nodeArray[i]; | 267 if (predicate(nodeArray[i])) return nodeArray[i]; |
262 } | 268 } |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 if (hasValidParameters) this.emitNoSpace(','); | 547 if (hasValidParameters) this.emitNoSpace(','); |
542 let positionalOptional = parameters.slice(firstInitParamIdx, parameters.le
ngth); | 548 let positionalOptional = parameters.slice(firstInitParamIdx, parameters.le
ngth); |
543 this.emit('['); | 549 this.emit('['); |
544 this.visitParameterList(positionalOptional); | 550 this.visitParameterList(positionalOptional); |
545 this.emitNoSpace(']'); | 551 this.emitNoSpace(']'); |
546 } | 552 } |
547 | 553 |
548 this.emitNoSpace(')'); | 554 this.emitNoSpace(')'); |
549 } | 555 } |
550 } | 556 } |
OLD | NEW |