Skip to content

Commit 38b20fd

Browse files
chloestefantsovaCommit Queue
authored andcommitted
[analyzer][cfe] Create 'getter-setter-error' feature flag
Part of #58578 Change-Id: I819d4b86761f60d59a8aa95a1dfba1c280499992 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/396581 Reviewed-by: Michael Thomsen <[email protected]> Reviewed-by: Erik Ernst <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]> Reviewed-by: Johnni Winther <[email protected]> Commit-Queue: Chloe Stefantsova <[email protected]>
1 parent f7c9899 commit 38b20fd

File tree

5 files changed

+92
-26
lines changed

5 files changed

+92
-26
lines changed

pkg/_fe_analyzer_shared/lib/src/experiments/flags.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,14 @@ enum ExperimentalFlag {
106106
experimentReleasedVersion: const Version(2, 14),
107107
),
108108

109+
getterSetterError(
110+
name: 'getter-setter-error',
111+
isEnabledByDefault: false,
112+
isExpired: false,
113+
experimentEnabledVersion: defaultLanguageVersion,
114+
experimentReleasedVersion: defaultLanguageVersion,
115+
),
116+
109117
inferenceUpdate1(
110118
name: 'inference-update-1',
111119
isEnabledByDefault: true,

pkg/analyzer/lib/src/dart/analysis/driver.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ import 'package:meta/meta.dart';
9999
// TODO(scheglov): Clean up the list of implicitly analyzed files.
100100
class AnalysisDriver {
101101
/// The version of data format, should be incremented on every format change.
102-
static const int DATA_VERSION = 423;
102+
static const int DATA_VERSION = 424;
103103

104104
/// The number of exception contexts allowed to write. Once this field is
105105
/// zero, we stop writing any new exception contexts in this process.

pkg/analyzer/lib/src/dart/analysis/experiments.g.dart

Lines changed: 50 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ final _knownFeatures = <String, ExperimentalFeature>{
2929
EnableString.enum_shorthands: ExperimentalFeatures.enum_shorthands,
3030
EnableString.extension_methods: ExperimentalFeatures.extension_methods,
3131
EnableString.generic_metadata: ExperimentalFeatures.generic_metadata,
32+
EnableString.getter_setter_error: ExperimentalFeatures.getter_setter_error,
3233
EnableString.inference_update_1: ExperimentalFeatures.inference_update_1,
3334
EnableString.inference_update_2: ExperimentalFeatures.inference_update_2,
3435
EnableString.inference_update_3: ExperimentalFeatures.inference_update_3,
@@ -98,6 +99,9 @@ class EnableString {
9899
/// String to enable the experiment "generic-metadata"
99100
static const String generic_metadata = 'generic-metadata';
100101

102+
/// String to enable the experiment "getter-setter-error"
103+
static const String getter_setter_error = 'getter-setter-error';
104+
101105
/// String to enable the experiment "inference-update-1"
102106
static const String inference_update_1 = 'inference-update-1';
103107

@@ -298,8 +302,19 @@ class ExperimentalFeatures {
298302
releaseVersion: Version.parse('2.14.0'),
299303
);
300304

301-
static final inference_update_1 = ExperimentalFeature(
305+
static final getter_setter_error = ExperimentalFeature(
302306
index: 12,
307+
enableString: EnableString.getter_setter_error,
308+
isEnabledByDefault: IsEnabledByDefault.getter_setter_error,
309+
isExpired: IsExpired.getter_setter_error,
310+
documentation:
311+
'Stop reporting errors about mismatching types in a getter/setter pair.',
312+
experimentalReleaseVersion: null,
313+
releaseVersion: null,
314+
);
315+
316+
static final inference_update_1 = ExperimentalFeature(
317+
index: 13,
303318
enableString: EnableString.inference_update_1,
304319
isEnabledByDefault: IsEnabledByDefault.inference_update_1,
305320
isExpired: IsExpired.inference_update_1,
@@ -310,7 +325,7 @@ class ExperimentalFeatures {
310325
);
311326

312327
static final inference_update_2 = ExperimentalFeature(
313-
index: 13,
328+
index: 14,
314329
enableString: EnableString.inference_update_2,
315330
isEnabledByDefault: IsEnabledByDefault.inference_update_2,
316331
isExpired: IsExpired.inference_update_2,
@@ -320,7 +335,7 @@ class ExperimentalFeatures {
320335
);
321336

322337
static final inference_update_3 = ExperimentalFeature(
323-
index: 14,
338+
index: 15,
324339
enableString: EnableString.inference_update_3,
325340
isEnabledByDefault: IsEnabledByDefault.inference_update_3,
326341
isExpired: IsExpired.inference_update_3,
@@ -331,7 +346,7 @@ class ExperimentalFeatures {
331346
);
332347

333348
static final inference_update_4 = ExperimentalFeature(
334-
index: 15,
349+
index: 16,
335350
enableString: EnableString.inference_update_4,
336351
isEnabledByDefault: IsEnabledByDefault.inference_update_4,
337352
isExpired: IsExpired.inference_update_4,
@@ -341,7 +356,7 @@ class ExperimentalFeatures {
341356
);
342357

343358
static final inference_using_bounds = ExperimentalFeature(
344-
index: 16,
359+
index: 17,
345360
enableString: EnableString.inference_using_bounds,
346361
isEnabledByDefault: IsEnabledByDefault.inference_using_bounds,
347362
isExpired: IsExpired.inference_using_bounds,
@@ -352,7 +367,7 @@ class ExperimentalFeatures {
352367
);
353368

354369
static final inline_class = ExperimentalFeature(
355-
index: 17,
370+
index: 18,
356371
enableString: EnableString.inline_class,
357372
isEnabledByDefault: IsEnabledByDefault.inline_class,
358373
isExpired: IsExpired.inline_class,
@@ -362,7 +377,7 @@ class ExperimentalFeatures {
362377
);
363378

364379
static final macros = ExperimentalFeature(
365-
index: 18,
380+
index: 19,
366381
enableString: EnableString.macros,
367382
isEnabledByDefault: IsEnabledByDefault.macros,
368383
isExpired: IsExpired.macros,
@@ -372,7 +387,7 @@ class ExperimentalFeatures {
372387
);
373388

374389
static final named_arguments_anywhere = ExperimentalFeature(
375-
index: 19,
390+
index: 20,
376391
enableString: EnableString.named_arguments_anywhere,
377392
isEnabledByDefault: IsEnabledByDefault.named_arguments_anywhere,
378393
isExpired: IsExpired.named_arguments_anywhere,
@@ -382,7 +397,7 @@ class ExperimentalFeatures {
382397
);
383398

384399
static final native_assets = ExperimentalFeature(
385-
index: 20,
400+
index: 21,
386401
enableString: EnableString.native_assets,
387402
isEnabledByDefault: IsEnabledByDefault.native_assets,
388403
isExpired: IsExpired.native_assets,
@@ -392,7 +407,7 @@ class ExperimentalFeatures {
392407
);
393408

394409
static final non_nullable = ExperimentalFeature(
395-
index: 21,
410+
index: 22,
396411
enableString: EnableString.non_nullable,
397412
isEnabledByDefault: IsEnabledByDefault.non_nullable,
398413
isExpired: IsExpired.non_nullable,
@@ -402,7 +417,7 @@ class ExperimentalFeatures {
402417
);
403418

404419
static final nonfunction_type_aliases = ExperimentalFeature(
405-
index: 22,
420+
index: 23,
406421
enableString: EnableString.nonfunction_type_aliases,
407422
isEnabledByDefault: IsEnabledByDefault.nonfunction_type_aliases,
408423
isExpired: IsExpired.nonfunction_type_aliases,
@@ -412,7 +427,7 @@ class ExperimentalFeatures {
412427
);
413428

414429
static final null_aware_elements = ExperimentalFeature(
415-
index: 23,
430+
index: 24,
416431
enableString: EnableString.null_aware_elements,
417432
isEnabledByDefault: IsEnabledByDefault.null_aware_elements,
418433
isExpired: IsExpired.null_aware_elements,
@@ -422,7 +437,7 @@ class ExperimentalFeatures {
422437
);
423438

424439
static final patterns = ExperimentalFeature(
425-
index: 24,
440+
index: 25,
426441
enableString: EnableString.patterns,
427442
isEnabledByDefault: IsEnabledByDefault.patterns,
428443
isExpired: IsExpired.patterns,
@@ -432,7 +447,7 @@ class ExperimentalFeatures {
432447
);
433448

434449
static final record_use = ExperimentalFeature(
435-
index: 25,
450+
index: 26,
436451
enableString: EnableString.record_use,
437452
isEnabledByDefault: IsEnabledByDefault.record_use,
438453
isExpired: IsExpired.record_use,
@@ -442,7 +457,7 @@ class ExperimentalFeatures {
442457
);
443458

444459
static final records = ExperimentalFeature(
445-
index: 26,
460+
index: 27,
446461
enableString: EnableString.records,
447462
isEnabledByDefault: IsEnabledByDefault.records,
448463
isExpired: IsExpired.records,
@@ -452,7 +467,7 @@ class ExperimentalFeatures {
452467
);
453468

454469
static final sealed_class = ExperimentalFeature(
455-
index: 27,
470+
index: 28,
456471
enableString: EnableString.sealed_class,
457472
isEnabledByDefault: IsEnabledByDefault.sealed_class,
458473
isExpired: IsExpired.sealed_class,
@@ -462,7 +477,7 @@ class ExperimentalFeatures {
462477
);
463478

464479
static final set_literals = ExperimentalFeature(
465-
index: 28,
480+
index: 29,
466481
enableString: EnableString.set_literals,
467482
isEnabledByDefault: IsEnabledByDefault.set_literals,
468483
isExpired: IsExpired.set_literals,
@@ -472,7 +487,7 @@ class ExperimentalFeatures {
472487
);
473488

474489
static final spread_collections = ExperimentalFeature(
475-
index: 29,
490+
index: 30,
476491
enableString: EnableString.spread_collections,
477492
isEnabledByDefault: IsEnabledByDefault.spread_collections,
478493
isExpired: IsExpired.spread_collections,
@@ -482,7 +497,7 @@ class ExperimentalFeatures {
482497
);
483498

484499
static final super_parameters = ExperimentalFeature(
485-
index: 30,
500+
index: 31,
486501
enableString: EnableString.super_parameters,
487502
isEnabledByDefault: IsEnabledByDefault.super_parameters,
488503
isExpired: IsExpired.super_parameters,
@@ -492,7 +507,7 @@ class ExperimentalFeatures {
492507
);
493508

494509
static final test_experiment = ExperimentalFeature(
495-
index: 31,
510+
index: 32,
496511
enableString: EnableString.test_experiment,
497512
isEnabledByDefault: IsEnabledByDefault.test_experiment,
498513
isExpired: IsExpired.test_experiment,
@@ -503,7 +518,7 @@ class ExperimentalFeatures {
503518
);
504519

505520
static final triple_shift = ExperimentalFeature(
506-
index: 32,
521+
index: 33,
507522
enableString: EnableString.triple_shift,
508523
isEnabledByDefault: IsEnabledByDefault.triple_shift,
509524
isExpired: IsExpired.triple_shift,
@@ -513,7 +528,7 @@ class ExperimentalFeatures {
513528
);
514529

515530
static final unnamed_libraries = ExperimentalFeature(
516-
index: 33,
531+
index: 34,
517532
enableString: EnableString.unnamed_libraries,
518533
isEnabledByDefault: IsEnabledByDefault.unnamed_libraries,
519534
isExpired: IsExpired.unnamed_libraries,
@@ -523,7 +538,7 @@ class ExperimentalFeatures {
523538
);
524539

525540
static final unquoted_imports = ExperimentalFeature(
526-
index: 34,
541+
index: 35,
527542
enableString: EnableString.unquoted_imports,
528543
isEnabledByDefault: IsEnabledByDefault.unquoted_imports,
529544
isExpired: IsExpired.unquoted_imports,
@@ -533,7 +548,7 @@ class ExperimentalFeatures {
533548
);
534549

535550
static final variance = ExperimentalFeature(
536-
index: 35,
551+
index: 36,
537552
enableString: EnableString.variance,
538553
isEnabledByDefault: IsEnabledByDefault.variance,
539554
isExpired: IsExpired.variance,
@@ -543,7 +558,7 @@ class ExperimentalFeatures {
543558
);
544559

545560
static final wildcard_variables = ExperimentalFeature(
546-
index: 36,
561+
index: 37,
547562
enableString: EnableString.wildcard_variables,
548563
isEnabledByDefault: IsEnabledByDefault.wildcard_variables,
549564
isExpired: IsExpired.wildcard_variables,
@@ -593,6 +608,9 @@ class IsEnabledByDefault {
593608
/// Default state of the experiment "generic-metadata"
594609
static const bool generic_metadata = true;
595610

611+
/// Default state of the experiment "getter-setter-error"
612+
static const bool getter_setter_error = false;
613+
596614
/// Default state of the experiment "inference-update-1"
597615
static const bool inference_update_1 = true;
598616

@@ -709,6 +727,9 @@ class IsExpired {
709727
/// Expiration status of the experiment "generic-metadata"
710728
static const bool generic_metadata = true;
711729

730+
/// Expiration status of the experiment "getter-setter-error"
731+
static const bool getter_setter_error = false;
732+
712733
/// Expiration status of the experiment "inference-update-1"
713734
static const bool inference_update_1 = true;
714735

@@ -826,6 +847,10 @@ mixin _CurrentState {
826847
/// Current state for the flag "generic-metadata"
827848
bool get generic_metadata => isEnabled(ExperimentalFeatures.generic_metadata);
828849

850+
/// Current state for the flag "getter-setter-error"
851+
bool get getter_setter_error =>
852+
isEnabled(ExperimentalFeatures.getter_setter_error);
853+
829854
/// Current state for the flag "inference-update-1"
830855
bool get inference_update_1 =>
831856
isEnabled(ExperimentalFeatures.inference_update_1);

pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,15 @@ class ExperimentalFlag {
169169
experimentReleasedVersion: const Version(2, 14),
170170
);
171171

172+
static const ExperimentalFlag getterSetterError = const ExperimentalFlag(
173+
name: 'getter-setter-error',
174+
isEnabledByDefault: false,
175+
isExpired: false,
176+
enabledVersion: defaultLanguageVersion,
177+
experimentEnabledVersion: defaultLanguageVersion,
178+
experimentReleasedVersion: defaultLanguageVersion,
179+
);
180+
172181
static const ExperimentalFlag inferenceUpdate1 = const ExperimentalFlag(
173182
name: 'inference-update-1',
174183
isEnabledByDefault: true,
@@ -529,6 +538,12 @@ class GlobalFeatures {
529538
ExperimentalFlag.genericMetadata,
530539
);
531540

541+
GlobalFeature? _getterSetterError;
542+
GlobalFeature get getterSetterError =>
543+
_getterSetterError ??= _computeGlobalFeature(
544+
ExperimentalFlag.getterSetterError,
545+
);
546+
532547
GlobalFeature? _inferenceUpdate1;
533548
GlobalFeature get inferenceUpdate1 =>
534549
_inferenceUpdate1 ??= _computeGlobalFeature(
@@ -772,6 +787,14 @@ class LibraryFeatures {
772787
libraryVersion,
773788
);
774789

790+
LibraryFeature? _getterSetterError;
791+
LibraryFeature get getterSetterError =>
792+
_getterSetterError ??= globalFeatures._computeLibraryFeature(
793+
ExperimentalFlag.getterSetterError,
794+
canonicalUri,
795+
libraryVersion,
796+
);
797+
775798
LibraryFeature? _inferenceUpdate1;
776799
LibraryFeature get inferenceUpdate1 =>
777800
_inferenceUpdate1 ??= globalFeatures._computeLibraryFeature(
@@ -1001,6 +1024,8 @@ class LibraryFeatures {
10011024
return extensionMethods;
10021025
case shared.ExperimentalFlag.genericMetadata:
10031026
return genericMetadata;
1027+
case shared.ExperimentalFlag.getterSetterError:
1028+
return getterSetterError;
10041029
case shared.ExperimentalFlag.inferenceUpdate1:
10051030
return inferenceUpdate1;
10061031
case shared.ExperimentalFlag.inferenceUpdate2:
@@ -1083,6 +1108,8 @@ ExperimentalFlag? parseExperimentalFlag(String flag) {
10831108
return ExperimentalFlag.extensionMethods;
10841109
case "generic-metadata":
10851110
return ExperimentalFlag.genericMetadata;
1111+
case "getter-setter-error":
1112+
return ExperimentalFlag.getterSetterError;
10861113
case "inference-update-1":
10871114
return ExperimentalFlag.inferenceUpdate1;
10881115
case "inference-update-2":
@@ -1164,6 +1191,8 @@ final Map<ExperimentalFlag, bool> defaultExperimentalFlags = {
11641191
ExperimentalFlag.extensionMethods.isEnabledByDefault,
11651192
ExperimentalFlag.genericMetadata:
11661193
ExperimentalFlag.genericMetadata.isEnabledByDefault,
1194+
ExperimentalFlag.getterSetterError:
1195+
ExperimentalFlag.getterSetterError.isEnabledByDefault,
11671196
ExperimentalFlag.inferenceUpdate1:
11681197
ExperimentalFlag.inferenceUpdate1.isEnabledByDefault,
11691198
ExperimentalFlag.inferenceUpdate2:
@@ -1229,6 +1258,7 @@ const Map<shared.ExperimentalFlag, ExperimentalFlag> sharedExperimentalFlags = {
12291258
shared.ExperimentalFlag.enumShorthands: ExperimentalFlag.enumShorthands,
12301259
shared.ExperimentalFlag.extensionMethods: ExperimentalFlag.extensionMethods,
12311260
shared.ExperimentalFlag.genericMetadata: ExperimentalFlag.genericMetadata,
1261+
shared.ExperimentalFlag.getterSetterError: ExperimentalFlag.getterSetterError,
12321262
shared.ExperimentalFlag.inferenceUpdate1: ExperimentalFlag.inferenceUpdate1,
12331263
shared.ExperimentalFlag.inferenceUpdate2: ExperimentalFlag.inferenceUpdate2,
12341264
shared.ExperimentalFlag.inferenceUpdate3: ExperimentalFlag.inferenceUpdate3,

tools/experimental_features.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,9 @@ features:
148148
enum-shorthands:
149149
help: "Shorter dot syntax for enum values."
150150

151+
getter-setter-error:
152+
help: "Stop reporting errors about mismatching types in a getter/setter pair."
153+
151154
# Experiment flag only used for testing.
152155
test-experiment:
153156
help: >-

0 commit comments

Comments
 (0)