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

Side by Side Diff: pkg/kernel/lib/ast.dart

Issue 3009953003: Store actual Reference(s) for additional exports. (Closed)
Patch Set: Use references, but keep JSON hacks for errors and void/dynamic. Created 3 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 file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /// ----------------------------------------------------------------------- 5 /// -----------------------------------------------------------------------
6 /// ERROR HANDLING 6 /// ERROR HANDLING
7 /// ----------------------------------------------------------------------- 7 /// -----------------------------------------------------------------------
8 /// 8 ///
9 /// As a rule of thumb, errors that can be detected statically are handled by 9 /// As a rule of thumb, errors that can be detected statically are handled by
10 /// the frontend, typically by translating the erroneous code into a 'throw' or 10 /// the frontend, typically by translating the erroneous code into a 'throw' or
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 /// other than [ClassLevel.Body]. Members in an external library have no 262 /// other than [ClassLevel.Body]. Members in an external library have no
263 /// body, but have their typed interface present. 263 /// body, but have their typed interface present.
264 /// 264 ///
265 /// If the libary is non-external, then its classes are at [ClassLevel.Body] 265 /// If the libary is non-external, then its classes are at [ClassLevel.Body]
266 /// and all members are loaded. 266 /// and all members are loaded.
267 bool isExternal; 267 bool isExternal;
268 268
269 String name; 269 String name;
270 final List<Expression> annotations; 270 final List<Expression> annotations;
271 final List<LibraryDependency> dependencies; 271 final List<LibraryDependency> dependencies;
272
273 /// References to nodes exported by `export` declarations that:
274 /// - aren't ambiguous, or
275 /// - aren't hidden by local declarations.
276 final List<Reference> additionalExports = <Reference>[];
277
272 @informative 278 @informative
273 final List<LibraryPart> parts; 279 final List<LibraryPart> parts;
274 final List<Typedef> typedefs; 280 final List<Typedef> typedefs;
275 final List<Class> classes; 281 final List<Class> classes;
276 final List<Procedure> procedures; 282 final List<Procedure> procedures;
277 final List<Field> fields; 283 final List<Field> fields;
278 284
279 Library(this.importUri, 285 Library(this.importUri,
280 {this.name, 286 {this.name,
281 this.isExternal: false, 287 this.isExternal: false,
(...skipping 4668 matching lines...) Expand 10 before | Expand all | Expand 10 after
4950 if (typedef_.canonicalName == null) { 4956 if (typedef_.canonicalName == null) {
4951 throw '$typedef_ has no canonical name'; 4957 throw '$typedef_ has no canonical name';
4952 } 4958 }
4953 return typedef_.canonicalName; 4959 return typedef_.canonicalName;
4954 } 4960 }
4955 4961
4956 /// Annotation describing information which is not part of Dart semantics; in 4962 /// Annotation describing information which is not part of Dart semantics; in
4957 /// other words, if this information (or any information it refers to) changes, 4963 /// other words, if this information (or any information it refers to) changes,
4958 /// static analysis and runtime behavior of the library are unaffected. 4964 /// static analysis and runtime behavior of the library are unaffected.
4959 const informative = null; 4965 const informative = null;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698