Files
sdk/pkg/kernel/lib/transformations/closure_conversion.dart
T
Karl Klose e88a478a7c Handle constructor bodies
Also rewrites untransformed closures (for example those in initializers) to throw an exception.

R=ahe@google.com

Review-Url: https://codereview.chromium.org/2639253003 .
2017-01-19 13:32:18 +01:00

28 lines
934 B
Dart

// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
library kernel.transformations.closure_conversion;
import '../ast.dart' show Class, Program;
import '../core_types.dart' show CoreTypes;
import 'closure/converter.dart' show ClosureConverter;
import 'closure/info.dart' show ClosureInfo;
import 'closure/invalidate_closures.dart';
import 'closure/mock.dart' show mockUpContext;
Program transformProgram(Program program) {
var info = new ClosureInfo();
info.visitProgram(program);
CoreTypes coreTypes = new CoreTypes(program);
Class contextClass = mockUpContext(coreTypes, program);
var convert = new ClosureConverter(coreTypes, info, contextClass);
program = convert.visitProgram(program);
return new InvalidateClosures().visitProgram(program);
}