@@ -2513,6 +2513,7 @@ String topLevelFunction(int param1, bool param2, Cool coolBeans,
25132513 Field explicitGetterSetter;
25142514 Field explicitNonDocumentedInBaseClassGetter;
25152515 Field documentedPartialFieldInSubclassOnly;
2516+ Field finalProperty;
25162517 Field ExtraSpecialListLength ;
25172518 Field aProperty;
25182519 Field covariantField, covariantSetter;
@@ -2539,6 +2540,8 @@ String topLevelFunction(int param1, bool param2, Cool coolBeans,
25392540 (e) => e.name == 'explicitNonDocumentedInBaseClassGetter' );
25402541 documentedPartialFieldInSubclassOnly = UnusualProperties .allModelElements
25412542 .firstWhere ((e) => e.name == 'documentedPartialFieldInSubclassOnly' );
2543+ finalProperty = UnusualProperties .allModelElements
2544+ .firstWhere ((e) => e.name == 'finalProperty' );
25422545
25432546 isEmpty =
25442547 CatString .allInstanceFields.firstWhere ((p) => p.name == 'isEmpty' );
@@ -2774,8 +2777,18 @@ String topLevelFunction(int param1, bool param2, Cool coolBeans,
27742777 expect (constField.isConst, isTrue);
27752778 });
27762779
2777- test ('is not final' , () {
2780+ test ('is final only when appropriate ' , () {
27782781 expect (f1.isFinal, isFalse);
2782+ expect (finalProperty.isFinal, isTrue);
2783+ expect (finalProperty.isLate, isFalse);
2784+ expect (finalProperty.features, contains ('final' ));
2785+ expect (finalProperty.features, isNot (contains ('late' )));
2786+ expect (onlySetter.isFinal, isFalse);
2787+ expect (onlySetter.features, isNot (contains ('final' )));
2788+ expect (onlySetter.features, isNot (contains ('late' )));
2789+ expect (dynamicGetter.isFinal, isFalse);
2790+ expect (dynamicGetter.features, isNot (contains ('final' )));
2791+ expect (dynamicGetter.features, isNot (contains ('late' )));
27792792 });
27802793
27812794 test ('is not static' , () {
@@ -2885,11 +2898,13 @@ String topLevelFunction(int param1, bool param2, Cool coolBeans,
28852898 TopLevelVariable setAndGet, mapWithDynamicKeys;
28862899 TopLevelVariable nodocGetter, nodocSetter;
28872900 TopLevelVariable complicatedReturn;
2888- TopLevelVariable importantComputations;
2901+ TopLevelVariable meaningOfLife, importantComputations;
28892902
28902903 setUpAll (() {
28912904 v = exLibrary.properties.firstWhere ((p) => p.name == 'number' );
28922905 v3 = exLibrary.properties.firstWhere ((p) => p.name == 'y' );
2906+ meaningOfLife =
2907+ fakeLibrary.properties.firstWhere ((v) => v.name == 'meaningOfLife' );
28932908 importantComputations = fakeLibrary.properties
28942909 .firstWhere ((v) => v.name == 'importantComputations' );
28952910 complicatedReturn = fakeLibrary.properties
@@ -2908,6 +2923,19 @@ String topLevelFunction(int param1, bool param2, Cool coolBeans,
29082923 .firstWhere ((p) => p.name == 'mapWithDynamicKeys' );
29092924 });
29102925
2926+ test ('Verify that final and late show up (or not) appropriately' , () {
2927+ expect (meaningOfLife.isFinal, isTrue);
2928+ expect (meaningOfLife.isLate, isFalse);
2929+ expect (meaningOfLife.features, contains ('final' ));
2930+ expect (meaningOfLife.features, isNot (contains ('late' )));
2931+ expect (justGetter.isFinal, isFalse);
2932+ expect (justGetter.features, isNot (contains ('final' )));
2933+ expect (justGetter.features, isNot (contains ('late' )));
2934+ expect (justSetter.isFinal, isFalse);
2935+ expect (justSetter.features, isNot (contains ('final' )));
2936+ expect (justSetter.features, isNot (contains ('late' )));
2937+ });
2938+
29112939 test (
29122940 'Verify that a map containing anonymous functions as values works correctly' ,
29132941 () {
0 commit comments