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

Side by Side Diff: lib/src/codegen/js_codegen.dart

Issue 1089693002: remove another old analyzer workaround (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 8 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 unified diff | Download patch
« no previous file with comments | « lib/runtime/dart/core.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dev_compiler.src.codegen.js_codegen; 5 library dev_compiler.src.codegen.js_codegen;
6 6
7 import 'dart:collection' show HashSet, HashMap; 7 import 'dart:collection' show HashSet, HashMap;
8 import 'dart:io' show Directory, File; 8 import 'dart:io' show Directory, File;
9 9
10 import 'package:analyzer/analyzer.dart' hide ConstantEvaluator; 10 import 'package:analyzer/analyzer.dart' hide ConstantEvaluator;
(...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 _emitTypeProperties(namedTypes) 1095 _emitTypeProperties(namedTypes)
1096 ]); 1096 ]);
1097 } 1097 }
1098 } 1098 }
1099 // TODO(jmesserly): remove when we're using coercion reifier. 1099 // TODO(jmesserly): remove when we're using coercion reifier.
1100 return _unimplementedCall('Unimplemented type $type'); 1100 return _unimplementedCall('Unimplemented type $type');
1101 } 1101 }
1102 1102
1103 var typeArgs = null; 1103 var typeArgs = null;
1104 if (type is ParameterizedType) { 1104 if (type is ParameterizedType) {
1105 // TODO(jmesserly): this is a workaround for an analyzer bug, see: 1105 var args = type.typeArguments;
1106 // https://github.com/dart-lang/dev_compiler/commit/a212d59ad046085a626dd8 d16881cdb8e8b9c3fa 1106 if (args.any((a) => a != types.dynamicType)) {
1107 if (type is! FunctionType || element is FunctionTypeAlias) { 1107 name = '$name\$';
1108 var args = type.typeArguments; 1108 typeArgs = args.map(_emitTypeName);
1109 if (args.any((a) => a != types.dynamicType)) {
1110 name = '$name\$';
1111 typeArgs = args.map(_emitTypeName);
1112 }
1113 } 1109 }
1114 } 1110 }
1115 1111
1116 JS.Expression result; 1112 JS.Expression result;
1117 if (_needQualifiedName(element)) { 1113 if (_needQualifiedName(element)) {
1118 result = js.call('#.#', [_libraryName(element.library), name]); 1114 result = js.call('#.#', [_libraryName(element.library), name]);
1119 } else { 1115 } else {
1120 result = new JS.Identifier(name); 1116 result = new JS.Identifier(name);
1121 } 1117 }
1122 1118
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
1270 } 1266 }
1271 return js.call(code, [_visit(node.function), _visit(node.argumentList)]); 1267 return js.call(code, [_visit(node.function), _visit(node.argumentList)]);
1272 } 1268 }
1273 1269
1274 @override 1270 @override
1275 List<JS.Expression> visitArgumentList(ArgumentList node) { 1271 List<JS.Expression> visitArgumentList(ArgumentList node) {
1276 var args = <JS.Expression>[]; 1272 var args = <JS.Expression>[];
1277 var named = <JS.Property>[]; 1273 var named = <JS.Property>[];
1278 for (var arg in node.arguments) { 1274 for (var arg in node.arguments) {
1279 if (arg is NamedExpression) { 1275 if (arg is NamedExpression) {
1280 named.add(visitNamedExpression(arg)); 1276 named.add(_visit(arg));
1281 } else { 1277 } else {
1282 args.add(_visit(arg)); 1278 args.add(_visit(arg));
1283 } 1279 }
1284 } 1280 }
1285 if (named.isNotEmpty) { 1281 if (named.isNotEmpty) {
1286 args.add(new JS.ObjectInitializer(named)); 1282 args.add(new JS.ObjectInitializer(named));
1287 } 1283 }
1288 return args; 1284 return args;
1289 } 1285 }
1290 1286
(...skipping 1241 matching lines...) Expand 10 before | Expand all | Expand 10 after
2532 } 2528 }
2533 } 2529 }
2534 2530
2535 // TODO(jmesserly): validate the library. See issue #135. 2531 // TODO(jmesserly): validate the library. See issue #135.
2536 bool _isJsNameAnnotation(DartObjectImpl value) => value.type.name == 'JsName'; 2532 bool _isJsNameAnnotation(DartObjectImpl value) => value.type.name == 'JsName';
2537 2533
2538 // TODO(jacobr): we would like to do something like the following 2534 // TODO(jacobr): we would like to do something like the following
2539 // but we don't have summary support yet. 2535 // but we don't have summary support yet.
2540 // bool _supportJsExtensionMethod(AnnotatedNode node) => 2536 // bool _supportJsExtensionMethod(AnnotatedNode node) =>
2541 // _getAnnotation(node, "SupportJsExtensionMethod") != null; 2537 // _getAnnotation(node, "SupportJsExtensionMethod") != null;
OLDNEW
« no previous file with comments | « lib/runtime/dart/core.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698