OLD | NEW |
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 library dart2js.serialization.resolved_ast; | 5 library dart2js.serialization.resolved_ast; |
6 | 6 |
7 import '../common.dart'; | 7 import '../common.dart'; |
8 import '../common/resolution.dart'; | 8 import '../common/resolution.dart'; |
9 import '../constants/expressions.dart'; | 9 import '../constants/expressions.dart'; |
10 import '../dart_types.dart'; | 10 import '../dart_types.dart'; |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 } | 296 } |
297 token = token.next; | 297 token = token.next; |
298 } | 298 } |
299 return null; | 299 return null; |
300 } | 300 } |
301 | 301 |
302 /// Deserializes the [ResolvedAst] for [element] from [objectDecoder]. | 302 /// Deserializes the [ResolvedAst] for [element] from [objectDecoder]. |
303 /// [parsing] and [getBeginToken] are used for parsing the [Node] for | 303 /// [parsing] and [getBeginToken] are used for parsing the [Node] for |
304 /// [element] from its source code. | 304 /// [element] from its source code. |
305 static ResolvedAst deserialize(Element element, ObjectDecoder objectDecoder, | 305 static ResolvedAst deserialize(Element element, ObjectDecoder objectDecoder, |
306 Parsing parsing, Token getBeginToken(Uri uri, int charOffset)) { | 306 ParsingContext parsing, Token getBeginToken(Uri uri, int charOffset)) { |
307 ResolvedAstKind kind = | 307 ResolvedAstKind kind = |
308 objectDecoder.getEnum(Key.KIND, ResolvedAstKind.values); | 308 objectDecoder.getEnum(Key.KIND, ResolvedAstKind.values); |
309 switch (kind) { | 309 switch (kind) { |
310 case ResolvedAstKind.PARSED: | 310 case ResolvedAstKind.PARSED: |
311 return deserializeParsed( | 311 return deserializeParsed( |
312 element, objectDecoder, parsing, getBeginToken); | 312 element, objectDecoder, parsing, getBeginToken); |
313 case ResolvedAstKind.DEFAULT_CONSTRUCTOR: | 313 case ResolvedAstKind.DEFAULT_CONSTRUCTOR: |
314 case ResolvedAstKind.FORWARDING_CONSTRUCTOR: | 314 case ResolvedAstKind.FORWARDING_CONSTRUCTOR: |
315 return new SynthesizedResolvedAst(element, kind); | 315 return new SynthesizedResolvedAst(element, kind); |
316 } | 316 } |
317 } | 317 } |
318 | 318 |
319 /// Deserialize a [ResolvedAst] that is defined in terms of an AST together | 319 /// Deserialize a [ResolvedAst] that is defined in terms of an AST together |
320 /// with [TreeElements]. | 320 /// with [TreeElements]. |
321 static ResolvedAst deserializeParsed( | 321 static ResolvedAst deserializeParsed( |
322 Element element, | 322 Element element, |
323 ObjectDecoder objectDecoder, | 323 ObjectDecoder objectDecoder, |
324 Parsing parsing, | 324 ParsingContext parsing, |
325 Token getBeginToken(Uri uri, int charOffset)) { | 325 Token getBeginToken(Uri uri, int charOffset)) { |
326 CompilationUnitElement compilationUnit = element.compilationUnit; | 326 CompilationUnitElement compilationUnit = element.compilationUnit; |
327 DiagnosticReporter reporter = parsing.reporter; | 327 DiagnosticReporter reporter = parsing.reporter; |
328 | 328 |
329 /// Returns the first [Token] for parsing the [Node] for [element]. | 329 /// Returns the first [Token] for parsing the [Node] for [element]. |
330 Token readBeginToken() { | 330 Token readBeginToken() { |
331 Uri uri = objectDecoder.getUri(Key.URI); | 331 Uri uri = objectDecoder.getUri(Key.URI); |
332 int charOffset = objectDecoder.getInt(Key.OFFSET); | 332 int charOffset = objectDecoder.getInt(Key.OFFSET); |
333 Token beginToken = getBeginToken(uri, charOffset); | 333 Token beginToken = getBeginToken(uri, charOffset); |
334 if (beginToken == null) { | 334 if (beginToken == null) { |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
590 int targetLabelId = | 590 int targetLabelId = |
591 objectDecoder.getInt(Key.TARGET_LABEL, isOptional: true); | 591 objectDecoder.getInt(Key.TARGET_LABEL, isOptional: true); |
592 if (targetLabelId != null) { | 592 if (targetLabelId != null) { |
593 elements.registerTargetLabel(node, labelDefinitions[targetLabelId]); | 593 elements.registerTargetLabel(node, labelDefinitions[targetLabelId]); |
594 } | 594 } |
595 } | 595 } |
596 } | 596 } |
597 return new ParsedResolvedAst(element, root, elements); | 597 return new ParsedResolvedAst(element, root, elements); |
598 } | 598 } |
599 } | 599 } |
OLD | NEW |