| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 /// Implementation of the element model used for deserialiation. | 5 /// Implementation of the element model used for deserialiation. |
| 6 /// | 6 /// |
| 7 /// These classes are created by [ElementDeserializer] triggered by the | 7 /// These classes are created by [ElementDeserializer] triggered by the |
| 8 /// [Deserializer]. | 8 /// [Deserializer]. |
| 9 | 9 |
| 10 library dart2js.serialization.modelz; | 10 library dart2js.serialization.modelz; |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 Element member = members.getElement(key); | 302 Element member = members.getElement(key); |
| 303 if (member != null) { | 303 if (member != null) { |
| 304 f(member); | 304 f(member); |
| 305 } | 305 } |
| 306 }); | 306 }); |
| 307 } | 307 } |
| 308 } | 308 } |
| 309 | 309 |
| 310 class AbstractFieldElementZ extends ElementZ implements AbstractFieldElement { | 310 class AbstractFieldElementZ extends ElementZ implements AbstractFieldElement { |
| 311 final String name; | 311 final String name; |
| 312 final FunctionElement getter; | 312 final GetterElementZ getter; |
| 313 final FunctionElement setter; | 313 final SetterElementZ setter; |
| 314 | 314 |
| 315 AbstractFieldElementZ(this.name, this.getter, this.setter); | 315 AbstractFieldElementZ(this.name, this.getter, this.setter) { |
| 316 if (getter != null) { |
| 317 getter.abstractField = this; |
| 318 getter.setter = setter; |
| 319 } |
| 320 if (setter != null) { |
| 321 setter.abstractField = this; |
| 322 setter.getter = getter; |
| 323 } |
| 324 } |
| 316 | 325 |
| 317 FunctionElement get _canonicalElement => getter != null ? getter : setter; | 326 FunctionElement get _canonicalElement => getter != null ? getter : setter; |
| 318 | 327 |
| 319 @override | 328 @override |
| 320 ElementKind get kind => ElementKind.ABSTRACT_FIELD; | 329 ElementKind get kind => ElementKind.ABSTRACT_FIELD; |
| 321 | 330 |
| 322 @override | 331 @override |
| 323 accept(ElementVisitor visitor, arg) { | 332 accept(ElementVisitor visitor, arg) { |
| 324 return visitor.visitAbstractFieldElement(this, arg); | 333 return visitor.visitAbstractFieldElement(this, arg); |
| 325 } | 334 } |
| (...skipping 1016 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1342 MemberElementMixin | 1351 MemberElementMixin |
| 1343 implements MethodElement { | 1352 implements MethodElement { |
| 1344 FunctionElementZ(ObjectDecoder decoder) | 1353 FunctionElementZ(ObjectDecoder decoder) |
| 1345 : super(decoder); | 1354 : super(decoder); |
| 1346 | 1355 |
| 1347 @override | 1356 @override |
| 1348 ElementKind get kind => ElementKind.FUNCTION; | 1357 ElementKind get kind => ElementKind.FUNCTION; |
| 1349 | 1358 |
| 1350 @override | 1359 @override |
| 1351 accept(ElementVisitor visitor, arg) { | 1360 accept(ElementVisitor visitor, arg) { |
| 1352 return visitor.visitFunctionElement(this, arg); | 1361 return visitor.visitMethodElement(this, arg); |
| 1353 } | 1362 } |
| 1354 | 1363 |
| 1355 @override | 1364 @override |
| 1356 bool get isOperator => _decoder.getBool(Key.IS_OPERATOR); | 1365 bool get isOperator => _decoder.getBool(Key.IS_OPERATOR); |
| 1357 } | 1366 } |
| 1358 | 1367 |
| 1359 class TopLevelFunctionElementZ extends FunctionElementZ | 1368 class TopLevelFunctionElementZ extends FunctionElementZ |
| 1360 with LibraryMemberMixin { | 1369 with LibraryMemberMixin { |
| 1361 TopLevelFunctionElementZ(ObjectDecoder decoder) | 1370 TopLevelFunctionElementZ(ObjectDecoder decoder) |
| 1362 : super(decoder); | 1371 : super(decoder); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1415 AstElementMixin, | 1424 AstElementMixin, |
| 1416 ParametersMixin, | 1425 ParametersMixin, |
| 1417 FunctionTypedElementMixin, | 1426 FunctionTypedElementMixin, |
| 1418 TypedElementMixin | 1427 TypedElementMixin |
| 1419 implements LocalFunctionElement { | 1428 implements LocalFunctionElement { |
| 1420 LocalFunctionElementZ(ObjectDecoder decoder) | 1429 LocalFunctionElementZ(ObjectDecoder decoder) |
| 1421 : super(decoder); | 1430 : super(decoder); |
| 1422 | 1431 |
| 1423 @override | 1432 @override |
| 1424 accept(ElementVisitor visitor, arg) { | 1433 accept(ElementVisitor visitor, arg) { |
| 1425 return visitor.visitFunctionElement(this, arg); | 1434 return visitor.visitLocalFunctionElement(this, arg); |
| 1426 } | 1435 } |
| 1427 | 1436 |
| 1428 @override | 1437 @override |
| 1429 ElementKind get kind => ElementKind.FUNCTION; | 1438 ElementKind get kind => ElementKind.FUNCTION; |
| 1430 } | 1439 } |
| 1431 | 1440 |
| 1432 abstract class GetterElementZ extends DeserializedElementZ | 1441 abstract class GetterElementZ extends DeserializedElementZ |
| 1433 with AnalyzableElementMixin, | 1442 with AnalyzableElementMixin, |
| 1434 AstElementMixin, | 1443 AstElementMixin, |
| 1435 FunctionTypedElementMixin, | 1444 FunctionTypedElementMixin, |
| 1436 ParametersMixin, | 1445 ParametersMixin, |
| 1437 TypedElementMixin, | 1446 TypedElementMixin, |
| 1438 MemberElementMixin | 1447 MemberElementMixin |
| 1439 implements FunctionElement { | 1448 implements GetterElement { |
| 1449 |
| 1450 AbstractFieldElement abstractField; |
| 1451 SetterElement setter; |
| 1440 | 1452 |
| 1441 GetterElementZ(ObjectDecoder decoder) | 1453 GetterElementZ(ObjectDecoder decoder) |
| 1442 : super(decoder); | 1454 : super(decoder); |
| 1443 | 1455 |
| 1444 @override | 1456 @override |
| 1445 ElementKind get kind => ElementKind.GETTER; | 1457 ElementKind get kind => ElementKind.GETTER; |
| 1446 | 1458 |
| 1447 @override | 1459 @override |
| 1448 accept(ElementVisitor visitor, arg) { | 1460 accept(ElementVisitor visitor, arg) { |
| 1449 return visitor.visitFunctionElement(this, arg); | 1461 return visitor.visitGetterElement(this, arg); |
| 1450 } | 1462 } |
| 1451 } | 1463 } |
| 1452 | 1464 |
| 1453 class TopLevelGetterElementZ extends GetterElementZ with LibraryMemberMixin { | 1465 class TopLevelGetterElementZ extends GetterElementZ with LibraryMemberMixin { |
| 1454 TopLevelGetterElementZ(ObjectDecoder decoder) | 1466 TopLevelGetterElementZ(ObjectDecoder decoder) |
| 1455 : super(decoder); | 1467 : super(decoder); |
| 1456 } | 1468 } |
| 1457 | 1469 |
| 1458 class StaticGetterElementZ extends GetterElementZ | 1470 class StaticGetterElementZ extends GetterElementZ |
| 1459 with ClassMemberMixin, StaticMemberMixin { | 1471 with ClassMemberMixin, StaticMemberMixin { |
| 1460 StaticGetterElementZ(ObjectDecoder decoder) | 1472 StaticGetterElementZ(ObjectDecoder decoder) |
| 1461 : super(decoder); | 1473 : super(decoder); |
| 1462 } | 1474 } |
| 1463 | 1475 |
| 1464 class InstanceGetterElementZ extends GetterElementZ | 1476 class InstanceGetterElementZ extends GetterElementZ |
| 1465 with ClassMemberMixin, InstanceMemberMixin { | 1477 with ClassMemberMixin, InstanceMemberMixin { |
| 1466 InstanceGetterElementZ(ObjectDecoder decoder) | 1478 InstanceGetterElementZ(ObjectDecoder decoder) |
| 1467 : super(decoder); | 1479 : super(decoder); |
| 1468 } | 1480 } |
| 1469 | 1481 |
| 1470 abstract class SetterElementZ extends DeserializedElementZ | 1482 abstract class SetterElementZ extends DeserializedElementZ |
| 1471 with AnalyzableElementMixin, | 1483 with AnalyzableElementMixin, |
| 1472 AstElementMixin, | 1484 AstElementMixin, |
| 1473 FunctionTypedElementMixin, | 1485 FunctionTypedElementMixin, |
| 1474 ParametersMixin, | 1486 ParametersMixin, |
| 1475 TypedElementMixin, | 1487 TypedElementMixin, |
| 1476 MemberElementMixin | 1488 MemberElementMixin |
| 1477 implements FunctionElement { | 1489 implements SetterElement { |
| 1490 |
| 1491 AbstractFieldElement abstractField; |
| 1492 GetterElement getter; |
| 1478 | 1493 |
| 1479 SetterElementZ(ObjectDecoder decoder) | 1494 SetterElementZ(ObjectDecoder decoder) |
| 1480 : super(decoder); | 1495 : super(decoder); |
| 1481 | 1496 |
| 1482 @override | 1497 @override |
| 1483 ElementKind get kind => ElementKind.SETTER; | 1498 ElementKind get kind => ElementKind.SETTER; |
| 1484 | 1499 |
| 1485 @override | 1500 @override |
| 1486 accept(ElementVisitor visitor, arg) { | 1501 accept(ElementVisitor visitor, arg) { |
| 1487 return visitor.visitFunctionElement(this, arg); | 1502 return visitor.visitSetterElement(this, arg); |
| 1488 } | 1503 } |
| 1489 } | 1504 } |
| 1490 | 1505 |
| 1491 class TopLevelSetterElementZ extends SetterElementZ with LibraryMemberMixin { | 1506 class TopLevelSetterElementZ extends SetterElementZ with LibraryMemberMixin { |
| 1492 TopLevelSetterElementZ(ObjectDecoder decoder) | 1507 TopLevelSetterElementZ(ObjectDecoder decoder) |
| 1493 : super(decoder); | 1508 : super(decoder); |
| 1494 } | 1509 } |
| 1495 | 1510 |
| 1496 class StaticSetterElementZ extends SetterElementZ | 1511 class StaticSetterElementZ extends SetterElementZ |
| 1497 with ClassMemberMixin, StaticMemberMixin { | 1512 with ClassMemberMixin, StaticMemberMixin { |
| (...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1947 } | 1962 } |
| 1948 | 1963 |
| 1949 @override | 1964 @override |
| 1950 ElementKind get kind => ElementKind.PREFIX; | 1965 ElementKind get kind => ElementKind.PREFIX; |
| 1951 | 1966 |
| 1952 @override | 1967 @override |
| 1953 Element lookupLocalMember(String memberName) { | 1968 Element lookupLocalMember(String memberName) { |
| 1954 return _unsupported('lookupLocalMember'); | 1969 return _unsupported('lookupLocalMember'); |
| 1955 } | 1970 } |
| 1956 } | 1971 } |
| OLD | NEW |