| OLD | NEW |
| 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.element_map; | 5 library dart2js.kernel.element_map; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' as ir; | 7 import 'package:kernel/ast.dart' as ir; |
| 8 | 8 |
| 9 import '../closure.dart' show BoxLocal, ThisLocal; | 9 import '../closure.dart' show BoxLocal, ThisLocal; |
| 10 import '../common.dart'; | 10 import '../common.dart'; |
| (...skipping 1336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1347 DartType getFieldType(FieldEntity field) { | 1347 DartType getFieldType(FieldEntity field) { |
| 1348 return elementMap._getFieldType(field); | 1348 return elementMap._getFieldType(field); |
| 1349 } | 1349 } |
| 1350 | 1350 |
| 1351 @override | 1351 @override |
| 1352 FunctionType getLocalFunctionType(covariant KLocalFunction function) { | 1352 FunctionType getLocalFunctionType(covariant KLocalFunction function) { |
| 1353 return function.functionType; | 1353 return function.functionType; |
| 1354 } | 1354 } |
| 1355 | 1355 |
| 1356 @override | 1356 @override |
| 1357 ConstantExpression getFieldConstant(FieldEntity field) { |
| 1358 return elementMap._getFieldConstantExpression(field); |
| 1359 } |
| 1360 |
| 1361 @override |
| 1357 DartType getUnaliasedType(DartType type) => type; | 1362 DartType getUnaliasedType(DartType type) => type; |
| 1358 | 1363 |
| 1359 @override | 1364 @override |
| 1360 ConstructorEntity lookupConstructor(ClassEntity cls, String name, | 1365 ConstructorEntity lookupConstructor(ClassEntity cls, String name, |
| 1361 {bool required: false}) { | 1366 {bool required: false}) { |
| 1362 ConstructorEntity constructor = elementMap.lookupConstructor(cls, name); | 1367 ConstructorEntity constructor = elementMap.lookupConstructor(cls, name); |
| 1363 if (constructor == null && required) { | 1368 if (constructor == null && required) { |
| 1364 throw failedAt( | 1369 throw failedAt( |
| 1365 CURRENT_ELEMENT_SPANNABLE, | 1370 CURRENT_ELEMENT_SPANNABLE, |
| 1366 "The constructor '$name' was not found in class '${cls.name}' " | 1371 "The constructor '$name' was not found in class '${cls.name}' " |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1405 } | 1410 } |
| 1406 | 1411 |
| 1407 @override | 1412 @override |
| 1408 void forEachClassMember( | 1413 void forEachClassMember( |
| 1409 ClassEntity cls, void f(ClassEntity declarer, MemberEntity member)) { | 1414 ClassEntity cls, void f(ClassEntity declarer, MemberEntity member)) { |
| 1410 elementMap._forEachClassMember(cls, f); | 1415 elementMap._forEachClassMember(cls, f); |
| 1411 } | 1416 } |
| 1412 | 1417 |
| 1413 @override | 1418 @override |
| 1414 void forEachConstructor( | 1419 void forEachConstructor( |
| 1415 ClassEntity cls, void f(ConstructorEntity constructor)) { | 1420 ClassEntity cls, void f(ConstructorEntity constructor), |
| 1421 {bool ensureResolved: true}) { |
| 1416 elementMap._forEachConstructor(cls, f); | 1422 elementMap._forEachConstructor(cls, f); |
| 1417 } | 1423 } |
| 1418 | 1424 |
| 1419 @override | 1425 @override |
| 1420 void forEachConstructorBody( | 1426 void forEachConstructorBody( |
| 1421 ClassEntity cls, void f(ConstructorBodyEntity constructor)) { | 1427 ClassEntity cls, void f(ConstructorBodyEntity constructor)) { |
| 1422 elementMap._forEachConstructorBody(cls, f); | 1428 elementMap._forEachConstructorBody(cls, f); |
| 1423 } | 1429 } |
| 1424 | 1430 |
| 1425 @override | 1431 @override |
| 1432 void forEachNestedClosure( |
| 1433 MemberEntity member, void f(FunctionEntity closure)) { |
| 1434 throw new UnimplementedError( |
| 1435 'KernelElementEnvironment.forEachNestedClosure'); |
| 1436 } |
| 1437 |
| 1438 @override |
| 1426 void forEachLibraryMember( | 1439 void forEachLibraryMember( |
| 1427 LibraryEntity library, void f(MemberEntity member)) { | 1440 LibraryEntity library, void f(MemberEntity member)) { |
| 1428 elementMap._forEachLibraryMember(library, f); | 1441 elementMap._forEachLibraryMember(library, f); |
| 1429 } | 1442 } |
| 1430 | 1443 |
| 1431 @override | 1444 @override |
| 1432 MemberEntity lookupLibraryMember(LibraryEntity library, String name, | 1445 MemberEntity lookupLibraryMember(LibraryEntity library, String name, |
| 1433 {bool setter: false, bool required: false}) { | 1446 {bool setter: false, bool required: false}) { |
| 1434 MemberEntity member = | 1447 MemberEntity member = |
| 1435 elementMap.lookupLibraryMember(library, name, setter: setter); | 1448 elementMap.lookupLibraryMember(library, name, setter: setter); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1495 // TODO(redemption): Support includeParameterMetadata. | 1508 // TODO(redemption): Support includeParameterMetadata. |
| 1496 MemberData memberData = elementMap._memberData[member.memberIndex]; | 1509 MemberData memberData = elementMap._memberData[member.memberIndex]; |
| 1497 return memberData.getMetadata(elementMap); | 1510 return memberData.getMetadata(elementMap); |
| 1498 } | 1511 } |
| 1499 | 1512 |
| 1500 @override | 1513 @override |
| 1501 FunctionType getFunctionTypeOfTypedef(TypedefEntity typedef) { | 1514 FunctionType getFunctionTypeOfTypedef(TypedefEntity typedef) { |
| 1502 // TODO(redemption): Support this. | 1515 // TODO(redemption): Support this. |
| 1503 throw new UnsupportedError('ElementEnvironment.getTypedefAlias'); | 1516 throw new UnsupportedError('ElementEnvironment.getTypedefAlias'); |
| 1504 } | 1517 } |
| 1518 |
| 1519 // TODO(het): This assumes that everything in the kernel model has been |
| 1520 // resolved. |
| 1521 @override |
| 1522 bool hasBeenResolved(Entity entity) => true; |
| 1523 |
| 1524 // TODO(het): This assumes that everything in the kernel model has been |
| 1525 // resolved. |
| 1526 @override |
| 1527 bool hasClassBeenResolved(ClassEntity cls) => true; |
| 1505 } | 1528 } |
| 1506 | 1529 |
| 1507 /// Visitor that converts kernel dart types into [DartType]. | 1530 /// Visitor that converts kernel dart types into [DartType]. |
| 1508 class DartTypeConverter extends ir.DartTypeVisitor<DartType> { | 1531 class DartTypeConverter extends ir.DartTypeVisitor<DartType> { |
| 1509 final KernelToElementMapBase elementMap; | 1532 final KernelToElementMapBase elementMap; |
| 1510 bool topLevel = true; | 1533 bool topLevel = true; |
| 1511 | 1534 |
| 1512 DartTypeConverter(this.elementMap); | 1535 DartTypeConverter(this.elementMap); |
| 1513 | 1536 |
| 1514 DartType convert(ir.DartType type) { | 1537 DartType convert(ir.DartType type) { |
| (...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2332 /// | 2355 /// |
| 2333 /// These names are not used in generated code, just as element name. | 2356 /// These names are not used in generated code, just as element name. |
| 2334 String _getClosureVariableName(String name, int id) { | 2357 String _getClosureVariableName(String name, int id) { |
| 2335 return "_captured_${name}_$id"; | 2358 return "_captured_${name}_$id"; |
| 2336 } | 2359 } |
| 2337 | 2360 |
| 2338 String getDeferredUri(ir.LibraryDependency node) { | 2361 String getDeferredUri(ir.LibraryDependency node) { |
| 2339 throw new UnimplementedError('JsKernelToElementMap.getDeferredUri'); | 2362 throw new UnimplementedError('JsKernelToElementMap.getDeferredUri'); |
| 2340 } | 2363 } |
| 2341 } | 2364 } |
| OLD | NEW |