| OLD | NEW |
| (Empty) | |
| 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 |
| 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 /// Shared element model between the dart analyzer and dart2js. |
| 6 |
| 7 library elements; |
| 8 |
| 9 /// The interface `Element` defines the behavior common to all of the elements |
| 10 /// in the element model. Generally speaking, the element model is a semantic |
| 11 /// model of the program that represents things that are declared with a name |
| 12 /// and hence can be referenced elsewhere in the code. |
| 13 abstract class Element { |
| 14 // TODO(johnniwinther): Semantic difference. Setter names from the analyzer |
| 15 // contain '=' but doesn't in dart2js. |
| 16 // TODO(johnniwinther,paulberry,brianwilkerson): What about privacy? Maybe |
| 17 // name should be the `Name` class in |
| 18 // 'package:compiler/src/elements/names.dart'. |
| 19 /// The name of this element, or `null` if this element does not have a name. |
| 20 String get name; |
| 21 |
| 22 /// The library that contains this element. This will be the element itself if |
| 23 /// it is a library element. |
| 24 LibraryElement get library; |
| 25 } |
| 26 |
| 27 /// The interface `LibraryElement` defines the behavior of elements representing |
| 28 /// a library. |
| 29 abstract class LibraryElement extends Element { |
| 30 |
| 31 } |
| 32 |
| 33 /// The interface `ClassElement` defines the behavior of elements that represent |
| 34 /// a class. |
| 35 abstract class ClassElement extends Element { |
| 36 |
| 37 } |
| OLD | NEW |