Skip to content

Commit 8b911bc

Browse files
authored
Fix duplicate field on static const extension method (dart-lang#2585)
* Fix duplicate field on static const extension method * dartfmt, rearrange presubmit order, fix analyzer grinder * hide experiments from stable
1 parent 05192a2 commit 8b911bc

File tree

6 files changed

+29
-9
lines changed

6 files changed

+29
-9
lines changed

lib/src/generator/generator_frontend.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,8 @@ class GeneratorFrontEnd implements Generator {
147147
writer, packageGraph, lib, extension, property);
148148
}
149149

150-
for (var staticField in filterNonDocumented(extension.staticFields)) {
150+
for (var staticField
151+
in filterNonDocumented(extension.variableStaticFields)) {
151152
indexAccumulator.add(staticField);
152153
_generatorBackend.generateProperty(
153154
writer, packageGraph, lib, extension, staticField);

test/end2end/model_special_cases_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ void main() {
136136
expectAliasedTypeName(a.modelType, equals('T0'));
137137
expectAliasedTypeName(b.modelType, equals('T0'));
138138
expectAliasedTypeName(f.modelType, equals('T0'));
139-
}, skip: 'dart-lang/sdk#45921');
139+
}, skip: 'dart-lang/sdk#45291');
140140

141141
test('basic non-function typedefs work', () {
142142
expectTypedefs(T0, 'void', []);

testing/test_package/lib/example.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,9 @@ extension AppleExtension on Apple {
211211
void s() {
212212
print('Extension on Apple');
213213
}
214+
215+
/// Do not crash on static const extensions.
216+
static const int f = 3;
214217
}
215218

216219
class WithGeneric<T> {

testing/test_package/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ dependencies:
88
test_package_imported:
99
path: "../test_package_imported"
1010
environment:
11-
sdk: '>=2.12.0-0 <3.0.0'
11+
sdk: '>=2.12.0 <3.0.0'

testing/test_package_experiments/lib/generalized_typedefs.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ T0 a;
2121

2222
class C2 {
2323
T0 b;
24-
T1 c;
25-
T2 d(T3 e, T4 f);
24+
T1? c;
25+
T2? d(T3 e, T4 f) {}
2626
}
2727

2828
class C1<T extends T3> {
29-
T2 a;
30-
T0 b(T1 c, T d);
29+
T2? a;
30+
T0 b(T1 c, T d) {}
3131
}
3232

3333
typedef T8 = C1;

tool/grind.dart

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,22 @@ void analyze() async {
236236
sdkBin('dartanalyzer'),
237237
['--fatal-infos', '--options', 'analysis_options_presubmit.yaml', '.'],
238238
);
239+
var testPackagePaths = [testPackage.path];
240+
if (Platform.version.contains('dev')) {
241+
testPackagePaths.add(testPackageExperiments.path);
242+
}
243+
for (var testPackagePath in testPackagePaths) {
244+
await SubprocessLauncher('pub-get').runStreamed(
245+
sdkBin('dart'),
246+
['pub', 'get'],
247+
workingDirectory: testPackagePath,
248+
);
249+
await SubprocessLauncher('analyze-test-package').runStreamed(
250+
sdkBin('dartanalyzer'),
251+
['.'],
252+
workingDirectory: testPackagePath,
253+
);
254+
}
239255
}
240256

241257
@Task('Check for dartfmt cleanliness')
@@ -284,10 +300,10 @@ void dartfmt() async {
284300
@Task('Run quick presubmit checks.')
285301
@Depends(
286302
analyze,
287-
checkBuild,
288-
smokeTest,
289303
dartfmt,
304+
checkBuild,
290305
tryPublish,
306+
smokeTest,
291307
)
292308
void presubmit() => null;
293309

0 commit comments

Comments
 (0)