| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 analyzer.test.src.summary.resynthesize_kernel_test; | 5 library analyzer.test.src.summary.resynthesize_kernel_test; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analyzer/dart/ast/ast.dart'; |
| 10 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; |
| 9 import 'package:analyzer/dart/element/type.dart'; | 11 import 'package:analyzer/dart/element/type.dart'; |
| 10 import 'package:analyzer/file_system/file_system.dart'; | 12 import 'package:analyzer/file_system/file_system.dart'; |
| 11 import 'package:analyzer/file_system/memory_file_system.dart'; | 13 import 'package:analyzer/file_system/memory_file_system.dart'; |
| 12 import 'package:analyzer/src/dart/element/element.dart'; | 14 import 'package:analyzer/src/dart/element/element.dart'; |
| 13 import 'package:analyzer/src/dart/element/type.dart'; | 15 import 'package:analyzer/src/dart/element/type.dart'; |
| 14 import 'package:analyzer/src/generated/engine.dart' show AnalysisContext; | 16 import 'package:analyzer/src/generated/engine.dart' show AnalysisContext; |
| 15 import 'package:analyzer/src/generated/source.dart'; | 17 import 'package:analyzer/src/generated/source.dart'; |
| 18 import 'package:analyzer/src/generated/testing/ast_test_factory.dart'; |
| 16 import 'package:analyzer/src/summary/resynthesize.dart'; | 19 import 'package:analyzer/src/summary/resynthesize.dart'; |
| 17 import 'package:front_end/file_system.dart'; | 20 import 'package:front_end/file_system.dart'; |
| 18 import 'package:front_end/src/base/performace_logger.dart'; | 21 import 'package:front_end/src/base/performace_logger.dart'; |
| 19 import 'package:front_end/src/fasta/uri_translator_impl.dart'; | 22 import 'package:front_end/src/fasta/uri_translator_impl.dart'; |
| 20 import 'package:front_end/src/incremental/byte_store.dart'; | 23 import 'package:front_end/src/incremental/byte_store.dart'; |
| 21 import 'package:front_end/src/incremental/kernel_driver.dart'; | 24 import 'package:front_end/src/incremental/kernel_driver.dart'; |
| 22 import 'package:kernel/kernel.dart' as kernel; | 25 import 'package:kernel/kernel.dart' as kernel; |
| 23 import 'package:kernel/target/targets.dart'; | 26 import 'package:kernel/target/targets.dart'; |
| 24 import 'package:package_config/packages.dart'; | 27 import 'package:package_config/packages.dart'; |
| 25 import 'package:path/path.dart' as pathos; | 28 import 'package:path/path.dart' as pathos; |
| (...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 test_const_topLevel_identical() async { | 666 test_const_topLevel_identical() async { |
| 664 await super.test_const_topLevel_identical(); | 667 await super.test_const_topLevel_identical(); |
| 665 } | 668 } |
| 666 | 669 |
| 667 @failingTest | 670 @failingTest |
| 668 test_const_topLevel_ifNull() async { | 671 test_const_topLevel_ifNull() async { |
| 669 await super.test_const_topLevel_ifNull(); | 672 await super.test_const_topLevel_ifNull(); |
| 670 } | 673 } |
| 671 | 674 |
| 672 @failingTest | 675 @failingTest |
| 673 test_const_topLevel_literal() async { | |
| 674 await super.test_const_topLevel_literal(); | |
| 675 } | |
| 676 | |
| 677 @failingTest | |
| 678 test_const_topLevel_prefix() async { | 676 test_const_topLevel_prefix() async { |
| 679 await super.test_const_topLevel_prefix(); | 677 await super.test_const_topLevel_prefix(); |
| 680 } | 678 } |
| 681 | 679 |
| 682 @failingTest | 680 @failingTest |
| 683 test_const_topLevel_super() async { | 681 test_const_topLevel_super() async { |
| 684 await super.test_const_topLevel_super(); | 682 await super.test_const_topLevel_super(); |
| 685 } | 683 } |
| 686 | 684 |
| 687 @failingTest | 685 @failingTest |
| (...skipping 1072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1760 test_metadata_simpleFormalParameter_withDefault() async { | 1758 test_metadata_simpleFormalParameter_withDefault() async { |
| 1761 await super.test_metadata_simpleFormalParameter_withDefault(); | 1759 await super.test_metadata_simpleFormalParameter_withDefault(); |
| 1762 } | 1760 } |
| 1763 | 1761 |
| 1764 @failingTest | 1762 @failingTest |
| 1765 test_metadata_topLevelVariableDeclaration() async { | 1763 test_metadata_topLevelVariableDeclaration() async { |
| 1766 await super.test_metadata_topLevelVariableDeclaration(); | 1764 await super.test_metadata_topLevelVariableDeclaration(); |
| 1767 } | 1765 } |
| 1768 | 1766 |
| 1769 @failingTest | 1767 @failingTest |
| 1770 test_metadata_typeParameter_ofClass() async { | |
| 1771 await super.test_metadata_typeParameter_ofClass(); | |
| 1772 } | |
| 1773 | |
| 1774 @failingTest | |
| 1775 test_metadata_typeParameter_ofClassTypeAlias() async { | 1768 test_metadata_typeParameter_ofClassTypeAlias() async { |
| 1776 await super.test_metadata_typeParameter_ofClassTypeAlias(); | 1769 await super.test_metadata_typeParameter_ofClassTypeAlias(); |
| 1777 } | 1770 } |
| 1778 | 1771 |
| 1779 @failingTest | 1772 @failingTest |
| 1780 test_metadata_typeParameter_ofFunction() async { | 1773 test_metadata_typeParameter_ofFunction() async { |
| 1781 await super.test_metadata_typeParameter_ofFunction(); | 1774 await super.test_metadata_typeParameter_ofFunction(); |
| 1782 } | 1775 } |
| 1783 | 1776 |
| 1784 @failingTest | 1777 @failingTest |
| (...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2272 test_unresolved_part() async { | 2265 test_unresolved_part() async { |
| 2273 await super.test_unresolved_part(); | 2266 await super.test_unresolved_part(); |
| 2274 } | 2267 } |
| 2275 | 2268 |
| 2276 @failingTest | 2269 @failingTest |
| 2277 test_unused_type_parameter() async { | 2270 test_unused_type_parameter() async { |
| 2278 await super.test_unused_type_parameter(); | 2271 await super.test_unused_type_parameter(); |
| 2279 } | 2272 } |
| 2280 | 2273 |
| 2281 @failingTest | 2274 @failingTest |
| 2282 test_variable_const() async { | |
| 2283 await super.test_variable_const(); | |
| 2284 } | |
| 2285 | |
| 2286 @failingTest | |
| 2287 test_variable_documented() async { | 2275 test_variable_documented() async { |
| 2288 await super.test_variable_documented(); | 2276 await super.test_variable_documented(); |
| 2289 } | 2277 } |
| 2290 | 2278 |
| 2291 @failingTest | 2279 @failingTest |
| 2292 test_variable_getterInLib_setterInPart() async { | 2280 test_variable_getterInLib_setterInPart() async { |
| 2293 await super.test_variable_getterInLib_setterInPart(); | 2281 await super.test_variable_getterInLib_setterInPart(); |
| 2294 } | 2282 } |
| 2295 | 2283 |
| 2296 @failingTest | 2284 @failingTest |
| 2297 test_variable_getterInPart_setterInLib() async { | 2285 test_variable_getterInPart_setterInLib() async { |
| 2298 await super.test_variable_getterInPart_setterInLib(); | 2286 await super.test_variable_getterInPart_setterInLib(); |
| 2299 } | 2287 } |
| 2300 | 2288 |
| 2301 @failingTest | 2289 @failingTest |
| 2302 test_variable_getterInPart_setterInPart() async { | 2290 test_variable_getterInPart_setterInPart() async { |
| 2303 await super.test_variable_getterInPart_setterInPart(); | 2291 await super.test_variable_getterInPart_setterInPart(); |
| 2304 } | 2292 } |
| 2305 | 2293 |
| 2306 @failingTest | 2294 @failingTest |
| 2307 test_variable_propagatedType_const_noDep() async { | |
| 2308 await super.test_variable_propagatedType_const_noDep(); | |
| 2309 } | |
| 2310 | |
| 2311 @failingTest | |
| 2312 test_variable_propagatedType_final_dep_inLib() async { | 2295 test_variable_propagatedType_final_dep_inLib() async { |
| 2313 await super.test_variable_propagatedType_final_dep_inLib(); | 2296 await super.test_variable_propagatedType_final_dep_inLib(); |
| 2314 } | 2297 } |
| 2315 | 2298 |
| 2316 @failingTest | 2299 @failingTest |
| 2317 test_variable_propagatedType_final_dep_inPart() async { | 2300 test_variable_propagatedType_final_dep_inPart() async { |
| 2318 await super.test_variable_propagatedType_final_dep_inPart(); | 2301 await super.test_variable_propagatedType_final_dep_inPart(); |
| 2319 } | 2302 } |
| 2320 | 2303 |
| 2321 @failingTest | 2304 @failingTest |
| 2322 test_variable_propagatedType_implicit_dep() async { | 2305 test_variable_propagatedType_implicit_dep() async { |
| 2323 await super.test_variable_propagatedType_implicit_dep(); | 2306 await super.test_variable_propagatedType_implicit_dep(); |
| 2324 } | 2307 } |
| 2325 | 2308 |
| 2326 @failingTest | 2309 @failingTest |
| 2327 test_variable_setterInPart_getterInPart() async { | 2310 test_variable_setterInPart_getterInPart() async { |
| 2328 await super.test_variable_setterInPart_getterInPart(); | 2311 await super.test_variable_setterInPart_getterInPart(); |
| 2329 } | 2312 } |
| 2330 } | 2313 } |
| 2331 | 2314 |
| 2315 /** |
| 2316 * Builder of [Expression]s from [kernel.Expression]s. |
| 2317 */ |
| 2318 class _ExprBuilder { |
| 2319 Expression build(kernel.Expression expr) { |
| 2320 if (expr is kernel.NullLiteral) { |
| 2321 return AstTestFactory.nullLiteral(); |
| 2322 } |
| 2323 if (expr is kernel.BoolLiteral) { |
| 2324 return AstTestFactory.booleanLiteral(expr.value); |
| 2325 } |
| 2326 if (expr is kernel.IntLiteral) { |
| 2327 return AstTestFactory.integer(expr.value); |
| 2328 } |
| 2329 if (expr is kernel.DoubleLiteral) { |
| 2330 return AstTestFactory.doubleLiteral(expr.value); |
| 2331 } |
| 2332 if (expr is kernel.StringLiteral) { |
| 2333 return AstTestFactory.string2(expr.value); |
| 2334 } |
| 2335 if (expr is kernel.StringConcatenation) { |
| 2336 List<InterpolationElement> elements = expr.expressions |
| 2337 .map(build) |
| 2338 .map(_newInterpolationElement) |
| 2339 .toList(growable: false); |
| 2340 return AstTestFactory.string(elements); |
| 2341 } |
| 2342 if (expr is kernel.SymbolLiteral) { |
| 2343 List<String> components = expr.value.split('.').toList(); |
| 2344 return AstTestFactory.symbolLiteral(components); |
| 2345 } |
| 2346 // TODO(scheglov): complete getExpression |
| 2347 throw new UnimplementedError('kernel: $expr'); |
| 2348 } |
| 2349 |
| 2350 InterpolationElement _newInterpolationElement(Expression expr) { |
| 2351 if (expr is SimpleStringLiteral) { |
| 2352 return astFactory.interpolationString(expr.literal, expr.value); |
| 2353 } else { |
| 2354 return AstTestFactory.interpolationExpression(expr); |
| 2355 } |
| 2356 } |
| 2357 } |
| 2358 |
| 2332 class _FileSystemAdaptor implements FileSystem { | 2359 class _FileSystemAdaptor implements FileSystem { |
| 2333 final ResourceProvider provider; | 2360 final ResourceProvider provider; |
| 2334 | 2361 |
| 2335 _FileSystemAdaptor(this.provider); | 2362 _FileSystemAdaptor(this.provider); |
| 2336 | 2363 |
| 2337 @override | 2364 @override |
| 2338 FileSystemEntity entityForUri(Uri uri) { | 2365 FileSystemEntity entityForUri(Uri uri) { |
| 2339 if (uri.isScheme('file')) { | 2366 if (uri.isScheme('file')) { |
| 2340 var file = provider.getFile(uri.path); | 2367 var file = provider.getFile(uri.path); |
| 2341 return new _FileSystemEntityAdaptor(uri, file); | 2368 return new _FileSystemEntityAdaptor(uri, file); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2377 class _KernelLibraryResynthesizerContextImpl | 2404 class _KernelLibraryResynthesizerContextImpl |
| 2378 implements KernelLibraryResynthesizerContext { | 2405 implements KernelLibraryResynthesizerContext { |
| 2379 final _KernelResynthesizer _resynthesizer; | 2406 final _KernelResynthesizer _resynthesizer; |
| 2380 | 2407 |
| 2381 @override | 2408 @override |
| 2382 final kernel.Library library; | 2409 final kernel.Library library; |
| 2383 | 2410 |
| 2384 _KernelLibraryResynthesizerContextImpl(this._resynthesizer, this.library); | 2411 _KernelLibraryResynthesizerContextImpl(this._resynthesizer, this.library); |
| 2385 | 2412 |
| 2386 @override | 2413 @override |
| 2414 Expression getExpression(kernel.Expression expression) { |
| 2415 return new _ExprBuilder().build(expression); |
| 2416 } |
| 2417 |
| 2418 @override |
| 2387 InterfaceType getInterfaceType( | 2419 InterfaceType getInterfaceType( |
| 2388 ElementImpl context, kernel.Supertype kernelType) { | 2420 ElementImpl context, kernel.Supertype kernelType) { |
| 2389 return _getInterfaceType( | 2421 return _getInterfaceType( |
| 2390 kernelType.className.canonicalName, kernelType.typeArguments); | 2422 kernelType.className.canonicalName, kernelType.typeArguments); |
| 2391 } | 2423 } |
| 2392 | 2424 |
| 2393 DartType getType(ElementImpl context, kernel.DartType kernelType) { | 2425 DartType getType(ElementImpl context, kernel.DartType kernelType) { |
| 2394 if (kernelType is kernel.DynamicType) return DynamicTypeImpl.instance; | 2426 if (kernelType is kernel.DynamicType) return DynamicTypeImpl.instance; |
| 2395 if (kernelType is kernel.InterfaceType) { | 2427 if (kernelType is kernel.InterfaceType) { |
| 2396 return _getInterfaceType( | 2428 return _getInterfaceType( |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2431 LibraryElementImpl getLibrary(String uriStr) { | 2463 LibraryElementImpl getLibrary(String uriStr) { |
| 2432 return _libraryMap.putIfAbsent(uriStr, () { | 2464 return _libraryMap.putIfAbsent(uriStr, () { |
| 2433 var kernel = _kernelMap[uriStr]; | 2465 var kernel = _kernelMap[uriStr]; |
| 2434 if (kernel == null) return null; | 2466 if (kernel == null) return null; |
| 2435 var libraryContext = | 2467 var libraryContext = |
| 2436 new _KernelLibraryResynthesizerContextImpl(this, kernel); | 2468 new _KernelLibraryResynthesizerContextImpl(this, kernel); |
| 2437 return new LibraryElementImpl.forKernel(_analysisContext, libraryContext); | 2469 return new LibraryElementImpl.forKernel(_analysisContext, libraryContext); |
| 2438 }); | 2470 }); |
| 2439 } | 2471 } |
| 2440 } | 2472 } |
| OLD | NEW |