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

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

Issue 2323733002: Compute ResolutionImpact directly from kernel, part 1 of ? (Closed)
Patch Set: dartfmt 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 'package:kernel/ast.dart' as ir; 5 import 'package:kernel/ast.dart' as ir;
6 import 'package:kernel/frontend/accessors.dart' as ir_accessors; 6 import 'package:kernel/frontend/accessors.dart' as ir_accessors;
7 7
8 import 'kernel.dart' show Kernel; 8 import 'kernel.dart' show Kernel;
9 import 'unresolved.dart' show UnresolvedVisitor; 9 import 'unresolved.dart' show UnresolvedVisitor;
10 10
11 export 'package:kernel/frontend/accessors.dart' show Accessor; 11 export 'package:kernel/frontend/accessors.dart' show Accessor;
12 12
13 class TopLevelStaticAccessor extends ir_accessors.StaticAccessor { 13 class TopLevelStaticAccessor extends ir_accessors.StaticAccessor {
14 final UnresolvedVisitor builder; 14 final UnresolvedVisitor builder;
15 15
16 /// Name of the property attempted to be accessed, used to generate an 16 /// Name of the property attempted to be accessed, used to generate an
17 /// error if unresolved. 17 /// error if unresolved.
18 final String name; 18 final String name;
19 19
20 Kernel get kernel => builder.kernel; 20 Kernel get kernel => builder.kernel;
21 21
22 TopLevelStaticAccessor( 22 TopLevelStaticAccessor(
23 this.builder, 23 this.builder, this.name, ir.Member readTarget, ir.Member writeTarget)
24 this.name,
25 ir.Member readTarget,
26 ir.Member writeTarget)
27 : super(readTarget, writeTarget); 24 : super(readTarget, writeTarget);
28 25
29 @override 26 @override
30 makeInvalidRead() { 27 makeInvalidRead() {
31 return builder.buildThrowNoSuchMethodError( 28 return builder.buildThrowNoSuchMethodError(
32 kernel.getUnresolvedTopLevelGetterBuilder(), 29 kernel.getUnresolvedTopLevelGetterBuilder(),
33 new ir.NullLiteral(), 30 new ir.NullLiteral(),
34 name, 31 name,
35 new ir.Arguments.empty()); 32 new ir.Arguments.empty());
36 } 33 }
(...skipping 10 matching lines...) Expand all
47 44
48 class ClassStaticAccessor extends ir_accessors.StaticAccessor { 45 class ClassStaticAccessor extends ir_accessors.StaticAccessor {
49 final UnresolvedVisitor builder; 46 final UnresolvedVisitor builder;
50 47
51 /// Name of the property attempted to be accessed, used to generate an 48 /// Name of the property attempted to be accessed, used to generate an
52 /// error if unresolved. 49 /// error if unresolved.
53 final String name; 50 final String name;
54 51
55 Kernel get kernel => builder.kernel; 52 Kernel get kernel => builder.kernel;
56 53
57 ClassStaticAccessor(this.builder, this.name, 54 ClassStaticAccessor(
58 ir.Member readTarget, ir.Member writeTarget) 55 this.builder, this.name, ir.Member readTarget, ir.Member writeTarget)
59 : super(readTarget, writeTarget); 56 : super(readTarget, writeTarget);
60 57
61 @override 58 @override
62 makeInvalidRead() { 59 makeInvalidRead() {
63 return builder.buildThrowNoSuchMethodError( 60 return builder.buildThrowNoSuchMethodError(
64 kernel.getUnresolvedStaticGetterBuilder(), 61 kernel.getUnresolvedStaticGetterBuilder(),
65 new ir.NullLiteral(), 62 new ir.NullLiteral(),
66 name, 63 name,
67 new ir.Arguments.empty()); 64 new ir.Arguments.empty());
68 } 65 }
69 66
70 @override 67 @override
71 makeInvalidWrite(ir.Expression value) { 68 makeInvalidWrite(ir.Expression value) {
72 return builder.buildThrowNoSuchMethodError( 69 return builder.buildThrowNoSuchMethodError(
73 kernel.getUnresolvedStaticSetterBuilder(), 70 kernel.getUnresolvedStaticSetterBuilder(),
74 new ir.NullLiteral(), 71 new ir.NullLiteral(),
75 name, 72 name,
76 new ir.Arguments(<ir.Expression>[value])); 73 new ir.Arguments(<ir.Expression>[value]));
77 } 74 }
78 } 75 }
79 76
80 class SuperPropertyAccessor extends ir_accessors.SuperPropertyAccessor { 77 class SuperPropertyAccessor extends ir_accessors.SuperPropertyAccessor {
81 final UnresolvedVisitor builder; 78 final UnresolvedVisitor builder;
82 79
83 /// Name of the property attempted to be accessed, used to generate an 80 /// Name of the property attempted to be accessed, used to generate an
84 /// error if unresolved. 81 /// error if unresolved.
85 final String name; 82 final String name;
86 83
87 SuperPropertyAccessor( 84 SuperPropertyAccessor(
88 this.builder, 85 this.builder, this.name, ir.Member readTarget, ir.Member writeTarget)
89 this.name,
90 ir.Member readTarget,
91 ir.Member writeTarget)
92 : super(readTarget, writeTarget); 86 : super(readTarget, writeTarget);
93 87
94 @override 88 @override
95 makeInvalidRead() { 89 makeInvalidRead() {
96 // TODO(asgerf): Technically, we should invoke 'super.noSuchMethod' for 90 // TODO(asgerf): Technically, we should invoke 'super.noSuchMethod' for
97 // this and the other invalid super cases. 91 // this and the other invalid super cases.
98 return builder.buildThrowUnresolvedSuperGetter(name); 92 return builder.buildThrowUnresolvedSuperGetter(name);
99 } 93 }
100 94
101 @override 95 @override
102 makeInvalidWrite(ir.Expression value) { 96 makeInvalidWrite(ir.Expression value) {
103 return builder.buildThrowUnresolvedSuperSetter(name, value); 97 return builder.buildThrowUnresolvedSuperSetter(name, value);
104 } 98 }
105 } 99 }
106 100
107 class SuperIndexAccessor extends ir_accessors.SuperIndexAccessor { 101 class SuperIndexAccessor extends ir_accessors.SuperIndexAccessor {
108 final UnresolvedVisitor builder; 102 final UnresolvedVisitor builder;
109 103
110 Kernel get kernel => builder.kernel; 104 Kernel get kernel => builder.kernel;
111 105
112 SuperIndexAccessor( 106 SuperIndexAccessor(this.builder, ir.Expression index, ir.Member readTarget,
113 this.builder,
114 ir.Expression index,
115 ir.Member readTarget,
116 ir.Member writeTarget) 107 ir.Member writeTarget)
117 : super(index, readTarget, writeTarget); 108 : super(index, readTarget, writeTarget);
118 109
119 @override 110 @override
120 makeInvalidRead() { 111 makeInvalidRead() {
121 return builder.buildThrowNoSuchMethodError( 112 return builder.buildThrowNoSuchMethodError(
122 kernel.getUnresolvedSuperMethodBuilder(), 113 kernel.getUnresolvedSuperMethodBuilder(),
123 new ir.ThisExpression(), 114 new ir.ThisExpression(),
124 '[]', 115 '[]',
125 new ir.Arguments(<ir.Expression>[indexAccess()])); 116 new ir.Arguments(<ir.Expression>[indexAccess()]));
126 } 117 }
127 118
128 @override 119 @override
129 makeInvalidWrite(ir.Expression value) { 120 makeInvalidWrite(ir.Expression value) {
130 return builder.buildThrowNoSuchMethodError( 121 return builder.buildThrowNoSuchMethodError(
131 kernel.getUnresolvedSuperMethodBuilder(), 122 kernel.getUnresolvedSuperMethodBuilder(),
132 new ir.ThisExpression(), 123 new ir.ThisExpression(),
133 '[]=', 124 '[]=',
134 new ir.Arguments(<ir.Expression>[indexAccess(), value])); 125 new ir.Arguments(<ir.Expression>[indexAccess(), value]));
135 } 126 }
136 } 127 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698