blob: c6739139dd477b0d636a5c1f7115bd90c444efd8 [file] [log] [blame]
// 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 fasta.analyzer;
import 'package:analyzer/analyzer.dart' show
AstNode;
import 'package:analyzer/dart/element/element.dart' show
LocalElement;
import 'package:kernel/analyzer/ast_from_analyzer.dart' show
ExpressionScope;
import 'package:kernel/ast.dart' show
Library,
TreeNode;
import '../builder/scope.dart' show
Scope;
import '../kernel/kernel_builder.dart' show
Builder,
KernelFormalParameterBuilder;
import 'element_store.dart' show
ElementStore;
export 'ast_builder.dart' show
AstBuilder;
export 'element_store.dart' show
ElementStore;
TreeNode toKernel(AstNode node, ElementStore store, Library library,
Scope scope) {
ExpressionScope expressionScope = new ExpressionScope(store, library);
scope.local.forEach((String name, Builder builder) {
if (builder is KernelFormalParameterBuilder) {
LocalElement local = store[builder];
assert(local != null);
assert(builder.declaration != null);
expressionScope.localVariables[local] = builder.declaration;
}
});
return expressionScope.buildStatement(node);
}