Index: pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart |
diff --git a/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart b/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart |
index c4f7b526a7ea00a409ceffae6dbe4001c0005a58..d181605bbb05b4d833c1f195b67c813835913735 100644 |
--- a/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart |
+++ b/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart |
@@ -6,6 +6,8 @@ library analyzer.test.src.summary.resynthesize_kernel_test; |
import 'dart:async'; |
+import 'package:analyzer/dart/ast/ast.dart'; |
+import 'package:analyzer/dart/ast/standard_ast_factory.dart'; |
import 'package:analyzer/dart/element/type.dart'; |
import 'package:analyzer/file_system/file_system.dart'; |
import 'package:analyzer/file_system/memory_file_system.dart'; |
@@ -13,6 +15,7 @@ import 'package:analyzer/src/dart/element/element.dart'; |
import 'package:analyzer/src/dart/element/type.dart'; |
import 'package:analyzer/src/generated/engine.dart' show AnalysisContext; |
import 'package:analyzer/src/generated/source.dart'; |
+import 'package:analyzer/src/generated/testing/ast_test_factory.dart'; |
import 'package:analyzer/src/summary/resynthesize.dart'; |
import 'package:front_end/file_system.dart'; |
import 'package:front_end/src/base/performace_logger.dart'; |
@@ -670,11 +673,6 @@ class ResynthesizeKernelStrongTest extends ResynthesizeTest { |
} |
@failingTest |
- test_const_topLevel_literal() async { |
- await super.test_const_topLevel_literal(); |
- } |
- |
- @failingTest |
test_const_topLevel_prefix() async { |
await super.test_const_topLevel_prefix(); |
} |
@@ -1767,11 +1765,6 @@ class ResynthesizeKernelStrongTest extends ResynthesizeTest { |
} |
@failingTest |
- test_metadata_typeParameter_ofClass() async { |
- await super.test_metadata_typeParameter_ofClass(); |
- } |
- |
- @failingTest |
test_metadata_typeParameter_ofClassTypeAlias() async { |
await super.test_metadata_typeParameter_ofClassTypeAlias(); |
} |
@@ -2279,11 +2272,6 @@ class ResynthesizeKernelStrongTest extends ResynthesizeTest { |
} |
@failingTest |
- test_variable_const() async { |
- await super.test_variable_const(); |
- } |
- |
- @failingTest |
test_variable_documented() async { |
await super.test_variable_documented(); |
} |
@@ -2304,11 +2292,6 @@ class ResynthesizeKernelStrongTest extends ResynthesizeTest { |
} |
@failingTest |
- test_variable_propagatedType_const_noDep() async { |
- await super.test_variable_propagatedType_const_noDep(); |
- } |
- |
- @failingTest |
test_variable_propagatedType_final_dep_inLib() async { |
await super.test_variable_propagatedType_final_dep_inLib(); |
} |
@@ -2329,6 +2312,50 @@ class ResynthesizeKernelStrongTest extends ResynthesizeTest { |
} |
} |
+/** |
+ * Builder of [Expression]s from [kernel.Expression]s. |
+ */ |
+class _ExprBuilder { |
+ Expression build(kernel.Expression expr) { |
+ if (expr is kernel.NullLiteral) { |
+ return AstTestFactory.nullLiteral(); |
+ } |
+ if (expr is kernel.BoolLiteral) { |
+ return AstTestFactory.booleanLiteral(expr.value); |
+ } |
+ if (expr is kernel.IntLiteral) { |
+ return AstTestFactory.integer(expr.value); |
+ } |
+ if (expr is kernel.DoubleLiteral) { |
+ return AstTestFactory.doubleLiteral(expr.value); |
+ } |
+ if (expr is kernel.StringLiteral) { |
+ return AstTestFactory.string2(expr.value); |
+ } |
+ if (expr is kernel.StringConcatenation) { |
+ List<InterpolationElement> elements = expr.expressions |
+ .map(build) |
+ .map(_newInterpolationElement) |
+ .toList(growable: false); |
+ return AstTestFactory.string(elements); |
+ } |
+ if (expr is kernel.SymbolLiteral) { |
+ List<String> components = expr.value.split('.').toList(); |
+ return AstTestFactory.symbolLiteral(components); |
+ } |
+ // TODO(scheglov): complete getExpression |
+ throw new UnimplementedError('kernel: $expr'); |
+ } |
+ |
+ InterpolationElement _newInterpolationElement(Expression expr) { |
+ if (expr is SimpleStringLiteral) { |
+ return astFactory.interpolationString(expr.literal, expr.value); |
+ } else { |
+ return AstTestFactory.interpolationExpression(expr); |
+ } |
+ } |
+} |
+ |
class _FileSystemAdaptor implements FileSystem { |
final ResourceProvider provider; |
@@ -2384,6 +2411,11 @@ class _KernelLibraryResynthesizerContextImpl |
_KernelLibraryResynthesizerContextImpl(this._resynthesizer, this.library); |
@override |
+ Expression getExpression(kernel.Expression expression) { |
+ return new _ExprBuilder().build(expression); |
+ } |
+ |
+ @override |
InterfaceType getInterfaceType( |
ElementImpl context, kernel.Supertype kernelType) { |
return _getInterfaceType( |