Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1290)

Side by Side Diff: pkg/compiler/lib/src/kernel/kernel.dart

Issue 2359453002: Handle local functions in kernel_impact. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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.md file. 3 // BSD-style license that can be found in the LICENSE.md file.
4 4
5 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:collection' show Queue; 6 import 'dart:collection' show Queue;
7 7
8 import 'package:kernel/ast.dart' as ir; 8 import 'package:kernel/ast.dart' as ir;
9 import 'package:kernel/checks.dart' show CheckParentPointers; 9 import 'package:kernel/checks.dart' show CheckParentPointers;
10 10
11 import '../compiler.dart' show Compiler; 11 import '../compiler.dart' show Compiler;
12 import '../constants/expressions.dart' show TypeConstantExpression; 12 import '../constants/expressions.dart' show TypeConstantExpression;
13 import '../dart_types.dart' 13 import '../dart_types.dart'
14 show DartType, FunctionType, InterfaceType, TypeKind, TypeVariableType; 14 show DartType, FunctionType, InterfaceType, TypeKind, TypeVariableType;
15 import '../diagnostics/messages.dart' show MessageKind; 15 import '../diagnostics/messages.dart' show MessageKind;
16 import '../diagnostics/spannable.dart' show Spannable; 16 import '../diagnostics/spannable.dart' show Spannable;
17 import '../elements/elements.dart' 17 import '../elements/elements.dart'
18 show 18 show
19 ClassElement, 19 ClassElement,
20 ConstructorElement, 20 ConstructorElement,
21 Element, 21 Element,
22 ExportElement, 22 ExportElement,
23 FieldElement, 23 FieldElement,
24 FunctionElement, 24 FunctionElement,
25 ImportElement, 25 ImportElement,
26 LibraryElement, 26 LibraryElement,
27 LocalFunctionElement,
27 MixinApplicationElement, 28 MixinApplicationElement,
28 TypeVariableElement; 29 TypeVariableElement;
29 import '../elements/modelx.dart' show ErroneousFieldElementX; 30 import '../elements/modelx.dart' show ErroneousFieldElementX;
30 import '../tree/tree.dart' show FunctionExpression, Node; 31 import '../tree/tree.dart' show FunctionExpression, Node;
31 import 'kernel_visitor.dart' show IrFunction, KernelVisitor; 32 import 'kernel_visitor.dart' show IrFunction, KernelVisitor;
32 33
33 typedef void WorkAction(); 34 typedef void WorkAction();
34 35
35 class WorkItem { 36 class WorkItem {
36 final Element element; 37 final Element element;
37 final WorkAction action; 38 final WorkAction action;
38 39
39 WorkItem(this.element, this.action); 40 WorkItem(this.element, this.action);
40 } 41 }
41 42
42 class Kernel { 43 class Kernel {
43 final Compiler compiler; 44 final Compiler compiler;
44 45
45 final Map<LibraryElement, ir.Library> libraries = 46 final Map<LibraryElement, ir.Library> libraries =
46 <LibraryElement, ir.Library>{}; 47 <LibraryElement, ir.Library>{};
47 48
48 final Map<ClassElement, ir.Class> classes = <ClassElement, ir.Class>{}; 49 final Map<ClassElement, ir.Class> classes = <ClassElement, ir.Class>{};
49 50
50 final Map<FunctionElement, ir.Member> functions = 51 final Map<FunctionElement, ir.Member> functions =
51 <FunctionElement, ir.Member>{}; 52 <FunctionElement, ir.Member>{};
52 53
54 final Map<LocalFunctionElement, ir.FunctionDeclaration> localFunctions =
55 <LocalFunctionElement, ir.FunctionDeclaration>{};
56
53 final Map<FieldElement, ir.Field> fields = <FieldElement, ir.Field>{}; 57 final Map<FieldElement, ir.Field> fields = <FieldElement, ir.Field>{};
54 58
55 final Map<TypeVariableElement, ir.TypeParameter> typeParameters = 59 final Map<TypeVariableElement, ir.TypeParameter> typeParameters =
56 <TypeVariableElement, ir.TypeParameter>{}; 60 <TypeVariableElement, ir.TypeParameter>{};
57 61
58 final Map<TypeVariableElement, ir.TypeParameter> factoryTypeParameters = 62 final Map<TypeVariableElement, ir.TypeParameter> factoryTypeParameters =
59 <TypeVariableElement, ir.TypeParameter>{}; 63 <TypeVariableElement, ir.TypeParameter>{};
60 64
61 final Set<ir.TreeNode> checkedNodes = new Set<ir.TreeNode>(); 65 final Set<ir.TreeNode> checkedNodes = new Set<ir.TreeNode>();
62 66
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 } 652 }
649 653
650 class ConstructorTarget { 654 class ConstructorTarget {
651 final ConstructorElement element; 655 final ConstructorElement element;
652 final DartType type; 656 final DartType type;
653 657
654 ConstructorTarget(this.element, this.type); 658 ConstructorTarget(this.element, this.type);
655 659
656 String toString() => "ConstructorTarget($element, $type)"; 660 String toString() => "ConstructorTarget($element, $type)";
657 } 661 }
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/kernel/kernel_debug.dart » ('j') | pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698