| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 /// This file declares a "shadow hierarchy" of concrete classes which extend | 5 /// This file declares a "shadow hierarchy" of concrete classes which extend |
| 6 /// the kernel class hierarchy, adding methods and fields needed by the | 6 /// the kernel class hierarchy, adding methods and fields needed by the |
| 7 /// BodyBuilder. | 7 /// BodyBuilder. |
| 8 /// | 8 /// |
| 9 /// Instances of these classes may be created using the factory methods in | 9 /// Instances of these classes may be created using the factory methods in |
| 10 /// `ast_factory.dart`. | 10 /// `ast_factory.dart`. |
| (...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 677 _initialTarget.function.functionType, | 677 _initialTarget.function.functionType, |
| 678 computeConstructorReturnType(_initialTarget), | 678 computeConstructorReturnType(_initialTarget), |
| 679 arguments); | 679 arguments); |
| 680 inferrer.listener.constructorInvocationExit(this, inferredType); | 680 inferrer.listener.constructorInvocationExit(this, inferredType); |
| 681 return inferredType; | 681 return inferredType; |
| 682 } | 682 } |
| 683 } | 683 } |
| 684 | 684 |
| 685 /// Concrete shadow object representing a field in kernel form. | 685 /// Concrete shadow object representing a field in kernel form. |
| 686 class KernelField extends Field { | 686 class KernelField extends Field { |
| 687 bool _implicitlyTyped = true; | |
| 688 | |
| 689 FieldNode _fieldNode; | 687 FieldNode _fieldNode; |
| 690 | 688 |
| 691 bool _isInferred = false; | 689 bool _isInferred = false; |
| 692 | 690 |
| 693 KernelTypeInferrer _typeInferrer; | 691 KernelTypeInferrer _typeInferrer; |
| 694 | 692 |
| 695 KernelField(Name name, {String fileUri}) : super(name, fileUri: fileUri) {} | 693 KernelField(Name name, {String fileUri}) : super(name, fileUri: fileUri) {} |
| 696 | 694 |
| 697 @override | |
| 698 void set type(DartType value) { | |
| 699 _implicitlyTyped = false; | |
| 700 super.type = value; | |
| 701 } | |
| 702 | |
| 703 void _setInferredType(DartType inferredType) { | 695 void _setInferredType(DartType inferredType) { |
| 704 _isInferred = true; | 696 _isInferred = true; |
| 705 super.type = inferredType; | 697 super.type = inferredType; |
| 706 } | 698 } |
| 707 } | 699 } |
| 708 | 700 |
| 709 /// Concrete shadow object representing a for-in loop in kernel form. | 701 /// Concrete shadow object representing a for-in loop in kernel form. |
| 710 class KernelForInStatement extends ForInStatement implements KernelStatement { | 702 class KernelForInStatement extends ForInStatement implements KernelStatement { |
| 711 final bool _declaresVariable; | 703 final bool _declaresVariable; |
| 712 | 704 |
| (...skipping 1194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1907 } | 1899 } |
| 1908 | 1900 |
| 1909 @override | 1901 @override |
| 1910 KernelTypeInferrer createTopLevelTypeInferrer(TypeInferenceListener listener, | 1902 KernelTypeInferrer createTopLevelTypeInferrer(TypeInferenceListener listener, |
| 1911 InterfaceType thisType, KernelField field) { | 1903 InterfaceType thisType, KernelField field) { |
| 1912 return field._typeInferrer = | 1904 return field._typeInferrer = |
| 1913 new KernelTypeInferrer._(this, field.fileUri, listener, true, thisType); | 1905 new KernelTypeInferrer._(this, field.fileUri, listener, true, thisType); |
| 1914 } | 1906 } |
| 1915 | 1907 |
| 1916 @override | 1908 @override |
| 1917 bool fieldHasInitializer(KernelField field) { | |
| 1918 return field.initializer != null; | |
| 1919 } | |
| 1920 | |
| 1921 @override | |
| 1922 DartType getFieldDeclaredType(KernelField field) { | |
| 1923 return field._implicitlyTyped ? null : field.type; | |
| 1924 } | |
| 1925 | |
| 1926 @override | |
| 1927 int getFieldOffset(KernelField field) { | 1909 int getFieldOffset(KernelField field) { |
| 1928 return field.fileOffset; | 1910 return field.fileOffset; |
| 1929 } | 1911 } |
| 1930 | 1912 |
| 1931 @override | 1913 @override |
| 1932 KernelTypeInferrer getFieldTypeInferrer(KernelField field) { | 1914 KernelTypeInferrer getFieldTypeInferrer(KernelField field) { |
| 1933 return field._typeInferrer; | 1915 return field._typeInferrer; |
| 1934 } | 1916 } |
| 1935 | 1917 |
| 1936 @override | 1918 @override |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2293 } | 2275 } |
| 2294 | 2276 |
| 2295 transformChildren(v) { | 2277 transformChildren(v) { |
| 2296 return internalError("Internal error: Unsupported operation."); | 2278 return internalError("Internal error: Unsupported operation."); |
| 2297 } | 2279 } |
| 2298 | 2280 |
| 2299 visitChildren(v) { | 2281 visitChildren(v) { |
| 2300 return internalError("Internal error: Unsupported operation."); | 2282 return internalError("Internal error: Unsupported operation."); |
| 2301 } | 2283 } |
| 2302 } | 2284 } |
| OLD | NEW |