Index: pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart |
diff --git a/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart b/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart |
index 83bb32c8f678f7c5ce2a05260e8f099c6de90d5a..7f5b6f05f79fd0f4449052372e0ed627fbd18e6d 100644 |
--- a/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart |
+++ b/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart |
@@ -191,6 +191,8 @@ class DartTypeConverter extends ir.DartTypeVisitor<DartType> { |
DartTypeConverter(this.astAdapter); |
+ DartType visitType(ir.DartType type) => type.accept(this); |
+ |
List<DartType> visitTypes(List<ir.DartType> types) { |
return new List.generate( |
types.length, (int index) => types[index].accept(this)); |
@@ -203,7 +205,16 @@ class DartTypeConverter extends ir.DartTypeVisitor<DartType> { |
@override |
DartType visitFunctionType(ir.FunctionType node) { |
- throw new UnimplementedError("Function types not currently supported"); |
+ return new FunctionType.synthesized( |
+ visitType(node.returnType), |
+ visitTypes(node.positionalParameters |
+ .take(node.requiredParameterCount) |
+ .toList()), |
+ visitTypes(node.positionalParameters |
+ .skip(node.requiredParameterCount) |
+ .toList()), |
+ node.namedParameters.keys.toList(), |
+ visitTypes(node.namedParameters.values.toList())); |
} |
@override |