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

Side by Side Diff: pkg/analyzer2dart/lib/src/modely.dart

Issue 609783002: Support static field access in analyzer2dart. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments. Created 6 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 part of analyzer2dart.element_converter; 5 part of analyzer2dart.element_converter;
6 6
7 7
8 /// Base [dart2js.Element] implementation for converted analyzer elements. 8 /// Base [dart2js.Element] implementation for converted analyzer elements.
9 class ElementY extends dart2js.Element { 9 class ElementY extends dart2js.Element {
10 final ElementConverter converter; 10 final ElementConverter converter;
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 @override 311 @override
312 void recordResolvedTag(tag, library) => unsupported('recordResolvedTag'); 312 void recordResolvedTag(tag, library) => unsupported('recordResolvedTag');
313 313
314 @override 314 @override
315 void setExports(exportedElements) => unsupported('setExports'); 315 void setExports(exportedElements) => unsupported('setExports');
316 316
317 @override 317 @override
318 get tags => unsupported('tags'); 318 get tags => unsupported('tags');
319 } 319 }
320 320
321 abstract class TopLevelElementMixin implements ElementY {
322 @override
323 bool get isClassMember => false;
324
325 @override
326 bool get isInstanceMember => false;
327
328 @override
329 bool get isTopLevel => true;
330
331 // TODO(johnniwinther): Ensure the correct semantics of this.
332 @override
333 bool get isFactoryConstructor => false;
334
335 @override
336 bool get isStatic {
337 // Semantic difference: Analyzer considers top-level and static class
338 // members to be static, dart2js only considers static class members to be
339 // static.
340 return false;
341 }
342
343 // TODO(johnniwinther): Ensure the correct semantics of this.
344 @override
345 bool get isAbstract => false;
346 }
347
321 class TopLevelFunctionElementY extends ElementY 348 class TopLevelFunctionElementY extends ElementY
322 with AnalyzableElementY, AstElementY 349 with AnalyzableElementY, AstElementY, TopLevelElementMixin
323 implements dart2js.FunctionElement { 350 implements dart2js.FunctionElement {
324 analyzer.FunctionElement get element => super.element; 351 analyzer.FunctionElement get element => super.element;
325 352
326 dart2js.FunctionSignature _functionSignature; 353 dart2js.FunctionSignature _functionSignature;
327 354
328 // TODO(johnniwinther): Avoid the need for this. 355 // TODO(johnniwinther): Avoid the need for this.
329 dart2js.FunctionSignature get functionSignature { 356 dart2js.FunctionSignature get functionSignature {
330 if (_functionSignature == null) { 357 if (_functionSignature == null) {
331 util.LinkBuilder<dart2js.Element> parameterBuilder = 358 util.LinkBuilder<dart2js.Element> parameterBuilder =
332 new util.LinkBuilder<dart2js.Element>(); 359 new util.LinkBuilder<dart2js.Element>();
(...skipping 15 matching lines...) Expand all
348 const util.Link<dart2js.Element>(), 375 const util.Link<dart2js.Element>(),
349 parameterBuilder.length, 0, false, 376 parameterBuilder.length, 0, false,
350 parameters.toList(), 377 parameters.toList(),
351 new dart2js.FunctionType.synthesized( 378 new dart2js.FunctionType.synthesized(
352 converter.convertType(element.returnType), 379 converter.convertType(element.returnType),
353 parameterTypes)); 380 parameterTypes));
354 } 381 }
355 return _functionSignature; 382 return _functionSignature;
356 } 383 }
357 384
358
359 // TODO(johnniwinther): Ensure the correct semantics of this.
360 @override
361 bool get isFactoryConstructor => false;
362
363 @override
364 bool get isStatic {
365 // Semantic difference: Analyzer considers top-level and static class
366 // members to be static, dart2js only considers static class members to be
367 // static.
368 return false;
369 }
370
371 // TODO(johnniwinther): Ensure the correct semantics of this.
372 @override
373 bool get isAbstract => false;
374
375 @override 385 @override
376 dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION; 386 dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION;
377 387
378 @override
379 bool get isClassMember => false;
380
381 @override
382 bool get isInstanceMember => false;
383
384 @override
385 bool get isTopLevel => true;
386
387 TopLevelFunctionElementY(ElementConverter converter, 388 TopLevelFunctionElementY(ElementConverter converter,
388 analyzer.FunctionElement element) 389 analyzer.FunctionElement element)
389 : super(converter, element); 390 : super(converter, element);
390 391
391 @override 392 @override
392 get abstractField => unsupported('abstractField'); 393 get abstractField => unsupported('abstractField');
393 394
394 @override 395 @override
395 computeSignature(_) => unsupported('computeSignature'); 396 computeSignature(_) => unsupported('computeSignature');
396 397
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 : super(converter, element); 649 : super(converter, element);
649 650
650 @override 651 @override
651 dart2js.DartType get alias => unsupported('alias'); 652 dart2js.DartType get alias => unsupported('alias');
652 653
653 @override 654 @override
654 void checkCyclicReference(compiler) => unsupported('checkCyclicReference'); 655 void checkCyclicReference(compiler) => unsupported('checkCyclicReference');
655 656
656 @override 657 @override
657 get functionSignature => unsupported('functionSignature'); 658 get functionSignature => unsupported('functionSignature');
659 }
660
661 class TopLevelVariableElementY extends ElementY
662 with AnalyzableElementY, AstElementY, TopLevelElementMixin
663 implements dart2js.FieldElement {
664
665 analyzer.TopLevelVariableElement get element => super.element;
666
667 dart2js.ElementKind get kind => dart2js.ElementKind.FIELD;
668
669 @override
670 dart2js.DartType get type => converter.convertType(element.type);
671
672 TopLevelVariableElementY(ElementConverter converter,
673 analyzer.TopLevelVariableElement element)
674 : super(converter, element);
675
676 @override
677 get initializer => unsupported('initializer');
678
679 @override
680 get memberContext => unsupported('memberContext');
681
682 @override
683 get nestedClosures => unsupported('nestedClosures');
658 } 684 }
OLDNEW
« no previous file with comments | « pkg/analyzer2dart/lib/src/identifier_semantics.dart ('k') | pkg/analyzer2dart/lib/src/semantic_visitor.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698