Skip to content

Commit

Permalink
Version 3.6.0-305.0.dev
Browse files Browse the repository at this point in the history
Merge 480756d into dev
  • Loading branch information
Dart CI committed Oct 1, 2024
2 parents bff9c6f + 480756d commit 07872c8
Show file tree
Hide file tree
Showing 11 changed files with 44 additions and 22 deletions.
2 changes: 1 addition & 1 deletion DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ vars = {
"test_descriptor_rev": "3b85d384997bd8cc0454475045cbb4ffc68797ee",
"test_process_rev": "6223572ca16d7585d5f08d9281de6a5734e45150",
"test_reflective_loader_rev": "6e648863b39aab8d0204e769d25805eea9db0ac4",
"tools_rev": "953e254ca1efc45c461aa04cb2703782d35d7830",
"tools_rev": "3440b74e430051304b56d4acd71b7ed30ab1855d",
"typed_data_rev": "2bb9e6ead6394e2d4ec6068c5ece8b2ec0e2b945",
"vector_math_rev": "2cfbe2c115a57b368ccbc3c89ebd38a06764d3d1",
"watcher_rev": "0484625589d8512b36a7ad898a6cc6351d24c556",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,26 @@ class ImportAddShowTest extends AssistProcessorTest {
@override
AssistKind get kind => DartAssistKind.IMPORT_ADD_SHOW;

Future<void> test_aliased() async {
newFile('$testPackageLibPath/lib.dart', '''
class C {}
extension E on C {
C operator +(C c) => this;
}
''');
await resolveTestCode('''
import 'lib.dart' as l;
void f(l.C c) => c + c;
''');
await assertHasAssistAt('import ', '''
import 'lib.dart' as l show C, E;
void f(l.C c) => c + c;
''');
}

Future<void> test_extensionBinaryOperator() async {
newFile('$testPackageLibPath/lib.dart', '''
class C {}
Expand Down
2 changes: 1 addition & 1 deletion pkg/dds/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ dependencies:
http_multi_server: ^3.0.0
json_rpc_2: ^3.0.0
meta: ^1.1.8
mime: ^1.0.2
mime: ^2.0.0
path: ^1.8.0
shelf_proxy: ^1.0.0
shelf_static: ^1.0.0
Expand Down
7 changes: 7 additions & 0 deletions pkg/linter/lib/src/extensions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'package:analyzer/dart/analysis/features.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/constant/value.dart';
import 'package:analyzer/dart/element/element.dart';
Expand Down Expand Up @@ -546,6 +547,12 @@ extension InterfaceTypeExtension on InterfaceType {
}
}

extension LinterContextExtension on LinterContext {
/// Whether the given [feature] is enabled in this linter context.
bool isEnabled(Feature feature) =>
libraryElement2!.featureSet.isEnabled(feature);
}

extension MethodDeclarationExtension on MethodDeclaration {
bool get hasInheritedMethod => lookUpInheritedMethod() != null;

Expand Down
4 changes: 3 additions & 1 deletion pkg/linter/lib/src/rules/unnecessary_breaks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';

import '../analyzer.dart';
import '../extensions.dart';
import '../linter_lint_codes.dart';

const _desc = r"Don't use explicit `break`s when a break is implied.";
Expand All @@ -24,7 +25,8 @@ class UnnecessaryBreaks extends LintRule {
@override
void registerNodeProcessors(
NodeLintRegistry registry, LinterContext context) {
if (!context.libraryElement!.featureSet.isEnabled(Feature.patterns)) return;
if (!context.isEnabled(Feature.patterns)) return;

var visitor = _Visitor(this);
registry.addBreakStatement(this, visitor);
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/linter/lib/src/rules/unnecessary_lambdas.dart
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,8 @@ class _Visitor extends SimpleAstVisitor<void> {
final TypeSystem typeSystem;

_Visitor(this.rule, LinterContext context)
: constructorTearOffsEnabled = context.libraryElement!.featureSet
.isEnabled(Feature.constructor_tearoffs),
: constructorTearOffsEnabled =
context.isEnabled(Feature.constructor_tearoffs),
typeSystem = context.typeSystem;

@override
Expand Down
6 changes: 2 additions & 4 deletions pkg/linter/lib/src/rules/unnecessary_library_name.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';

import '../analyzer.dart';
import '../extensions.dart';
import '../linter_lint_codes.dart';

const _desc = r"Don't have a library name in a `library` declaration.";
Expand All @@ -24,10 +25,7 @@ class UnnecessaryLibraryName extends LintRule {
@override
void registerNodeProcessors(
NodeLintRegistry registry, LinterContext context) {
if (!context.libraryElement!.featureSet
.isEnabled(Feature.unnamedLibraries)) {
return;
}
if (!context.isEnabled(Feature.unnamedLibraries)) return;

var visitor = _Visitor(this);
registry.addLibraryDirective(this, visitor);
Expand Down
4 changes: 1 addition & 3 deletions pkg/linter/lib/src/rules/use_enums.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,7 @@ class UseEnums extends LintRule {
@override
void registerNodeProcessors(
NodeLintRegistry registry, LinterContext context) {
if (!context.libraryElement!.featureSet.isEnabled(Feature.enhanced_enums)) {
return;
}
if (!context.isEnabled(Feature.enhanced_enums)) return;

var visitor = _Visitor(this, context);
registry.addClassDeclaration(this, visitor);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/src/lint/linter.dart'; //ignore: implementation_imports

import '../analyzer.dart';
import '../extensions.dart';
import '../linter_lint_codes.dart';

const _desc = r'Use string in part of directives.';
Expand Down Expand Up @@ -48,9 +49,7 @@ class _Visitor extends SimpleAstVisitor<void> {
}

extension on LinterContext {
bool get hasEnancedPartsFeatureEnabled {
var self = this;
return self is LinterContextWithResolvedResults &&
self.libraryElement.featureSet.isEnabled(Feature.enhanced_parts);
}
bool get hasEnancedPartsFeatureEnabled =>
this is LinterContextWithResolvedResults &&
isEnabled(Feature.enhanced_parts);
}
6 changes: 2 additions & 4 deletions pkg/linter/lib/src/rules/use_super_parameters.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/utilities/extensions/string.dart'; // ignore: implementation_imports

import '../analyzer.dart';
import '../extensions.dart';
import '../linter_lint_codes.dart';

const _desc = r'Use super-initializer parameters where possible.';
Expand Down Expand Up @@ -39,10 +40,7 @@ class UseSuperParameters extends LintRule {
@override
void registerNodeProcessors(
NodeLintRegistry registry, LinterContext context) {
if (!context.libraryElement!.featureSet
.isEnabled(Feature.super_parameters)) {
return;
}
if (!context.isEnabled(Feature.super_parameters)) return;

var visitor = _Visitor(this, context);
registry.addConstructorDeclaration(this, visitor);
Expand Down
2 changes: 1 addition & 1 deletion tools/VERSION
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,5 @@ CHANNEL dev
MAJOR 3
MINOR 6
PATCH 0
PRERELEASE 304
PRERELEASE 305
PRERELEASE_PATCH 0

0 comments on commit 07872c8

Please sign in to comment.