Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(533)

Unified Diff: lib/type.ts

Issue 2394683003: JS Interop Facade generation polish.
Patch Set: more cleanup Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/module.ts ('k') | test/declaration_test.ts » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/type.ts
diff --git a/lib/type.ts b/lib/type.ts
index b5680f281106246fd898fbc59f72956de1e488ca..d74362db9ead2f7e310b0d8224765c30a9a517aa 100644
--- a/lib/type.ts
+++ b/lib/type.ts
@@ -9,7 +9,7 @@ export default class TypeTranspiler extends base.TranspilerBase {
visitNode(node: ts.Node): boolean {
if (base.isTypeNode(node)) {
- this.emit(this.fc.generateDartTypeName(<ts.TypeNode>node, this.insideCodeComment));
+ this.emit(this.fc.generateDartTypeName(<ts.TypeNode>node));
return true;
}
switch (node.kind) {
@@ -33,11 +33,17 @@ export default class TypeTranspiler extends base.TranspilerBase {
this.visit(typeParam.constraint);
}
break;
+ case ts.SyntaxKind.PropertyAccessExpression:
+ let expr = <ts.PropertyAccessExpression>node;
+ this.visit(expr.expression);
+ this.emit('.');
+ this.fc.visitTypeName(expr.name);
+ break;
case ts.SyntaxKind.QualifiedName:
// TODO(jacobr): there is overlap between this case and
// generateDartTypeName in facade_converter.
let first = <ts.QualifiedName>node;
- let match = this.fc.lookupCustomDartTypeName(first, this.insideCodeComment);
+ let match = this.fc.lookupCustomDartTypeName(first);
if (match) {
this.emitType(match.name, match.comment);
break;
@@ -47,26 +53,10 @@ export default class TypeTranspiler extends base.TranspilerBase {
this.visit(first.right);
break;
case ts.SyntaxKind.Identifier:
- let ident = <ts.Identifier>node;
- let text = fixupIdentifierName(ident.text);
+ case ts.SyntaxKind.FirstLiteralToken:
+ let text = fixupIdentifierName(base.ident(node));
this.emit(text);
break;
- // TODO(jacobr): all these cases might be obsolete.
- case ts.SyntaxKind.NumberKeyword:
- this.emit('num');
- break;
- case ts.SyntaxKind.StringKeyword:
- this.emit('String');
- break;
- case ts.SyntaxKind.VoidKeyword:
- this.emit('void');
- break;
- case ts.SyntaxKind.BooleanKeyword:
- this.emit('bool');
- break;
- case ts.SyntaxKind.AnyKeyword:
- this.emit('dynamic');
- break;
default:
return false;
}
« no previous file with comments | « lib/module.ts ('k') | test/declaration_test.ts » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698