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

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

Issue 2804293002: Add MemberEntity.isAbstract and use MemberEntity in function_set.dart (Closed)
Patch Set: Inference doesn't like MemberEntity Created 3 years, 8 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) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.kernel.world_builder; 5 library dart2js.kernel.world_builder;
6 6
7 import 'package:kernel/ast.dart' as ir; 7 import 'package:kernel/ast.dart' as ir;
8 8
9 import '../common.dart'; 9 import '../common.dart';
10 import '../common/backend_api.dart'; 10 import '../common/backend_api.dart';
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 KClass enclosingClass; 224 KClass enclosingClass;
225 if (node.enclosingClass != null) { 225 if (node.enclosingClass != null) {
226 enclosingClass = _getClass(node.enclosingClass); 226 enclosingClass = _getClass(node.enclosingClass);
227 library = enclosingClass.library; 227 library = enclosingClass.library;
228 } else { 228 } else {
229 library = _getLibrary(node.enclosingLibrary); 229 library = _getLibrary(node.enclosingLibrary);
230 } 230 }
231 Name name = getName(node.name); 231 Name name = getName(node.name);
232 bool isStatic = node.isStatic; 232 bool isStatic = node.isStatic;
233 bool isExternal = node.isExternal; 233 bool isExternal = node.isExternal;
234 bool isAbstract = node.isAbstract;
234 KFunction function; 235 KFunction function;
235 switch (node.kind) { 236 switch (node.kind) {
236 case ir.ProcedureKind.Factory: 237 case ir.ProcedureKind.Factory:
237 throw new UnsupportedError("Cannot create method from factory."); 238 throw new UnsupportedError("Cannot create method from factory.");
238 case ir.ProcedureKind.Getter: 239 case ir.ProcedureKind.Getter:
239 function = new KGetter(memberIndex, library, enclosingClass, name, 240 function = new KGetter(memberIndex, library, enclosingClass, name,
240 isStatic: isStatic, isExternal: isExternal); 241 isStatic: isStatic,
242 isExternal: isExternal,
243 isAbstract: isAbstract);
241 break; 244 break;
242 case ir.ProcedureKind.Method: 245 case ir.ProcedureKind.Method:
243 case ir.ProcedureKind.Operator: 246 case ir.ProcedureKind.Operator:
244 function = new KMethod(memberIndex, library, enclosingClass, name, 247 function = new KMethod(memberIndex, library, enclosingClass, name,
245 isStatic: isStatic, isExternal: isExternal); 248 isStatic: isStatic,
249 isExternal: isExternal,
250 isAbstract: isAbstract);
246 break; 251 break;
247 case ir.ProcedureKind.Setter: 252 case ir.ProcedureKind.Setter:
248 function = new KSetter( 253 function = new KSetter(
249 memberIndex, library, enclosingClass, getName(node.name).setter, 254 memberIndex, library, enclosingClass, getName(node.name).setter,
250 isStatic: isStatic, isExternal: isExternal); 255 isStatic: isStatic,
256 isExternal: isExternal,
257 isAbstract: isAbstract);
251 break; 258 break;
252 } 259 }
253 _memberList.add(node); 260 _memberList.add(node);
254 return function; 261 return function;
255 }); 262 });
256 } 263 }
257 264
258 KField _getField(ir.Field node) { 265 KField _getField(ir.Field node) {
259 return _fieldMap.putIfAbsent(node, () { 266 return _fieldMap.putIfAbsent(node, () {
260 int memberIndex = _memberList.length; 267 int memberIndex = _memberList.length;
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 } 914 }
908 915
909 InterfaceType getMixinTypeForClass(KClass cls) { 916 InterfaceType getMixinTypeForClass(KClass cls) {
910 KClassEnv env = builder._classEnvs[cls.classIndex]; 917 KClassEnv env = builder._classEnvs[cls.classIndex];
911 ir.Supertype mixedInType = env.cls.mixedInType; 918 ir.Supertype mixedInType = env.cls.mixedInType;
912 if (mixedInType == null) return null; 919 if (mixedInType == null) return null;
913 return builder.createInterfaceType( 920 return builder.createInterfaceType(
914 mixedInType.classNode, mixedInType.typeArguments); 921 mixedInType.classNode, mixedInType.typeArguments);
915 } 922 }
916 } 923 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/kernel/elements.dart ('k') | pkg/compiler/lib/src/universe/element_world_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698