Skip to content

Commit 3ef77d1

Browse files
fishythefishCommit Queue
authored and
Commit Queue
committed
[_js_interop_checks] Update pubspec to 3.8 and reformat.
Change-Id: I8f7a8713ab668c49c51a710c4871d9e7f0c8e630 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/427565 Reviewed-by: Srujan Gaddam <[email protected]> Commit-Queue: Srujan Gaddam <[email protected]> Auto-Submit: Mayank Patke <[email protected]>
1 parent c66f91b commit 3ef77d1

File tree

5 files changed

+92
-110
lines changed

5 files changed

+92
-110
lines changed

pkg/_js_interop_checks/lib/js_interop_checks.dart

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -639,11 +639,10 @@ class JsInteropChecks extends RecursiveVisitor {
639639
(pattern) => uri.path.contains(pattern),
640640
);
641641
if (allowedToImport) return;
642-
final message =
643-
dependencyUriString == 'dart:ffi'
644-
? messageDartFfiLibraryInDart2Wasm
645-
: templateJsInteropDisallowedInteropLibraryInDart2Wasm
646-
.withArguments(dependencyUriString);
642+
final message = dependencyUriString == 'dart:ffi'
643+
? messageDartFfiLibraryInDart2Wasm
644+
: templateJsInteropDisallowedInteropLibraryInDart2Wasm
645+
.withArguments(dependencyUriString);
647646
_reporter.report(
648647
message,
649648
dependency.fileOffset,
@@ -797,8 +796,10 @@ class JsInteropChecks extends RecursiveVisitor {
797796
return false;
798797
}
799798
memberKind = 'extension type interop member';
800-
memberName =
801-
extensionIndex.getExtensionTypeDescriptor(member)!.name.text;
799+
memberName = extensionIndex
800+
.getExtensionTypeDescriptor(member)!
801+
.name
802+
.text;
802803
if (memberName.isEmpty) memberName = 'new';
803804
} else if (member.isExtensionMember) {
804805
// JS interop members can not be torn off.
@@ -1128,10 +1129,9 @@ class JsInteropChecks extends RecursiveVisitor {
11281129
parameterTypeString =
11291130
'$positionalParameterTypeString, {$namedParameterTypeString}';
11301131
} else {
1131-
parameterTypeString =
1132-
namedParameterTypeString.isNotEmpty
1133-
? '{$namedParameterTypeString}'
1134-
: positionalParameterTypeString;
1132+
parameterTypeString = namedParameterTypeString.isNotEmpty
1133+
? '{$namedParameterTypeString}'
1134+
: positionalParameterTypeString;
11351135
}
11361136
return '${typeToString(functionType.returnType)} '
11371137
'Function($parameterTypeString)';
@@ -1152,10 +1152,9 @@ class JsInteropChecks extends RecursiveVisitor {
11521152
// There's only one type, so only report that one type instead of a
11531153
// function type. This also avoids duplication in reporting external
11541154
// fields, which are just a getter and a setter.
1155-
final accessorType =
1156-
isGetter
1157-
? functionType.returnType
1158-
: functionType.positionalParameters[0];
1155+
final accessorType = isGetter
1156+
? functionType.returnType
1157+
: functionType.positionalParameters[0];
11591158
if (!_isAllowedExternalType(accessorType)) {
11601159
_reporter.report(
11611160
templateJsInteropStaticInteropExternalAccessorTypeViolation

pkg/_js_interop_checks/lib/src/transformations/js_util_optimizer.dart

Lines changed: 45 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,15 @@ class JsUtilOptimizer extends Transformer {
129129
'_functionToJS$i',
130130
),
131131
),
132-
_functionToJSCaptureThisTargets =
133-
isDart2JS
134-
? List<Procedure>.generate(
135-
5,
136-
(i) => _coreTypes.index.getTopLevelProcedure(
137-
'dart:js_util',
138-
'_functionToJSCaptureThis$i',
139-
),
140-
)
141-
: null,
132+
_functionToJSCaptureThisTargets = isDart2JS
133+
? List<Procedure>.generate(
134+
5,
135+
(i) => _coreTypes.index.getTopLevelProcedure(
136+
'dart:js_util',
137+
'_functionToJSCaptureThis$i',
138+
),
139+
)
140+
: null,
142141
_functionToJSNTarget = _coreTypes.index.getTopLevelProcedure(
143142
'dart:js_util',
144143
'_functionToJSN',
@@ -255,11 +254,10 @@ class JsUtilOptimizer extends Transformer {
255254
)..fileOffset = node.fileOffset;
256255

257256
if (!shouldTrustType) {
258-
expression =
259-
AsExpression(expression, node.getterType)
260-
..isTypeError = true
261-
..isForDynamic = true
262-
..fileOffset = node.fileOffset;
257+
expression = AsExpression(expression, node.getterType)
258+
..isTypeError = true
259+
..isForDynamic = true
260+
..fileOffset = node.fileOffset;
263261
}
264262

265263
final statement = ReturnStatement(expression)
@@ -397,10 +395,9 @@ class JsUtilOptimizer extends Transformer {
397395
// dotted prefix.
398396
var className = getJSName(enclosingClass);
399397
if (className.isEmpty) {
400-
className =
401-
enclosingClass is Class
402-
? enclosingClass.name
403-
: (enclosingClass as ExtensionTypeDeclaration).name;
398+
className = enclosingClass is Class
399+
? enclosingClass.name
400+
: (enclosingClass as ExtensionTypeDeclaration).name;
404401
}
405402
dottedPrefix = concatenateJSNames(dottedPrefix, className);
406403
}
@@ -453,8 +450,9 @@ class JsUtilOptimizer extends Transformer {
453450
bool shouldTrustType, [
454451
Expression? maybeReceiver,
455452
]) {
456-
final target =
457-
shouldTrustType ? _getPropertyTrustTypeTarget : _getPropertyTarget;
453+
final target = shouldTrustType
454+
? _getPropertyTrustTypeTarget
455+
: _getPropertyTarget;
458456
final isInstanceInteropMember = _extensionIndex.isInstanceInteropMember(
459457
node,
460458
);
@@ -465,10 +463,9 @@ class JsUtilOptimizer extends Transformer {
465463
final positionalArgs = arguments.positional;
466464
assert(positionalArgs.length == (isInstanceInteropMember ? 1 : 0));
467465
// We clone the receiver as each invocation needs a fresh node.
468-
final receiver =
469-
maybeReceiver == null
470-
? positionalArgs.first
471-
: _cloner.clone(maybeReceiver);
466+
final receiver = maybeReceiver == null
467+
? positionalArgs.first
468+
: _cloner.clone(maybeReceiver);
472469
final property = StringLiteral(name);
473470
return StaticInvocation(
474471
target,
@@ -502,10 +499,9 @@ class JsUtilOptimizer extends Transformer {
502499
// members.
503500
final positionalArgs = arguments.positional;
504501
assert(positionalArgs.length == (isInstanceInteropMember ? 2 : 1));
505-
final receiver =
506-
maybeReceiver == null
507-
? positionalArgs.first
508-
: _cloner.clone(maybeReceiver);
502+
final receiver = maybeReceiver == null
503+
? positionalArgs.first
504+
: _cloner.clone(maybeReceiver);
509505
final property = StringLiteral(name);
510506
final value = positionalArgs.last;
511507
return _lowerSetProperty(
@@ -536,18 +532,18 @@ class JsUtilOptimizer extends Transformer {
536532
bool shouldTrustType, [
537533
Expression? maybeReceiver,
538534
]) {
539-
final target =
540-
shouldTrustType ? _callMethodTrustTypeTarget : _callMethodTarget;
535+
final target = shouldTrustType
536+
? _callMethodTrustTypeTarget
537+
: _callMethodTarget;
541538
final isInstanceInteropMember = _extensionIndex.isInstanceInteropMember(
542539
node,
543540
);
544541
final name = _getMemberJSName(node);
545542
return (Arguments arguments, Expression invocation) {
546543
var positional = arguments.positional;
547-
final receiver =
548-
maybeReceiver == null
549-
? positional.first
550-
: _cloner.clone(maybeReceiver);
544+
final receiver = maybeReceiver == null
545+
? positional.first
546+
: _cloner.clone(maybeReceiver);
551547
if (isInstanceInteropMember) {
552548
// Ignore `this` for extension and extension type members.
553549
positional = positional.sublist(1);
@@ -587,8 +583,9 @@ class JsUtilOptimizer extends Transformer {
587583
StaticInvocation Function(StaticInvocation)? invocationOptimizer;
588584
switch (operator) {
589585
case '[]':
590-
target =
591-
shouldTrustType ? _getPropertyTrustTypeTarget : _getPropertyTarget;
586+
target = shouldTrustType
587+
? _getPropertyTrustTypeTarget
588+
: _getPropertyTarget;
592589
break;
593590
case '[]=':
594591
target = _setPropertyTarget;
@@ -773,10 +770,9 @@ class JsUtilOptimizer extends Transformer {
773770
Arguments arguments = node.arguments;
774771
assert(arguments.positional.length == 3);
775772
assert(arguments.named.isEmpty);
776-
List<Procedure> targets =
777-
shouldTrustType
778-
? _callMethodUncheckedTrustTypeTargets
779-
: _callMethodUncheckedTargets;
773+
List<Procedure> targets = shouldTrustType
774+
? _callMethodUncheckedTrustTypeTargets
775+
: _callMethodUncheckedTargets;
780776

781777
return _lowerToCallUnchecked(
782778
node,
@@ -844,15 +840,14 @@ class JsUtilOptimizer extends Transformer {
844840
if (argumentsListConstant.entries.length >= callUncheckedTargets.length) {
845841
return node;
846842
}
847-
callUncheckedArguments =
848-
argumentsListConstant.entries
849-
.map<Expression>(
850-
(constant) => ConstantExpression(
851-
constant,
852-
constant.getType(_staticTypeContext),
853-
),
854-
)
855-
.toList();
843+
callUncheckedArguments = argumentsListConstant.entries
844+
.map<Expression>(
845+
(constant) => ConstantExpression(
846+
constant,
847+
constant.getType(_staticTypeContext),
848+
),
849+
)
850+
.toList();
856851
entryType = argumentsListConstant.typeArgument;
857852
} else {
858853
// Skip lowering arguments in any other type of List.

pkg/_js_interop_checks/lib/src/transformations/shared_interop_transformer.dart

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,9 @@ class SharedInteropTransformer extends Transformer {
176176
final typeArguments = invocation.arguments.types;
177177
assert(typeArguments.length == 1);
178178
final interopType = typeArguments[0];
179-
final coreInteropType =
180-
_extensionIndex.getCoreInteropType(interopType)?.node;
179+
final coreInteropType = _extensionIndex
180+
.getCoreInteropType(interopType)
181+
?.node;
181182
if (coreInteropType is ExtensionTypeDeclaration &&
182183
_extensionIndex.isJSType(coreInteropType)) {
183184
replacement = _createIsACheck(
@@ -513,13 +514,12 @@ class SharedInteropTransformer extends Transformer {
513514
) {
514515
// In the case where the receiver wasn't a variable to begin with,
515516
// synthesize a var so that we don't evaluate the receiver multiple times.
516-
final any =
517-
receiver is VariableGet
518-
? receiver.variable
519-
: (VariableDeclaration.forValue(
520-
receiver,
521-
type: ExtensionType(_jsAny, Nullability.nullable),
522-
)..fileOffset = invocation.fileOffset);
517+
final any = receiver is VariableGet
518+
? receiver.variable
519+
: (VariableDeclaration.forValue(
520+
receiver,
521+
type: ExtensionType(_jsAny, Nullability.nullable),
522+
)..fileOffset = invocation.fileOffset);
523523

524524
Expression? check;
525525
final interopTypeDecl = interopType.extensionTypeDeclaration;
@@ -620,18 +620,13 @@ class SharedInteropTransformer extends Transformer {
620620
Expression nullCheck = EqualsNull(VariableGet(any));
621621
Expression notNullCheck = Not(EqualsNull(VariableGet(any)));
622622
if (check != null) {
623-
check =
624-
nullable
625-
? LogicalExpression(
626-
nullCheck,
627-
LogicalExpressionOperator.OR,
628-
check,
629-
)
630-
: LogicalExpression(
631-
notNullCheck,
632-
LogicalExpressionOperator.AND,
633-
check,
634-
);
623+
check = nullable
624+
? LogicalExpression(nullCheck, LogicalExpressionOperator.OR, check)
625+
: LogicalExpression(
626+
notNullCheck,
627+
LogicalExpressionOperator.AND,
628+
check,
629+
);
635630
} else if (!nullable) {
636631
// `JSAny`
637632
check = notNullCheck;

pkg/_js_interop_checks/lib/src/transformations/static_interop_mock_validator.dart

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -119,25 +119,19 @@ class StaticInteropMockValidator {
119119
for (var MapEntry(key: exportName, value: descriptors)
120120
in exportNameToDescriptors.entries) {
121121
String getAsErrorString(Iterable<ExtensionMemberDescriptor> descriptors) {
122-
var withExtensionNameAndType =
123-
descriptors.map((descriptor) {
124-
var extension = _descriptorToExtensionName[descriptor]!;
125-
var name = descriptor.name.text;
126-
var type = _getTypeOfDescriptor(descriptor);
127-
if (descriptor.isGetter) {
128-
type = FunctionType([], type, Nullability.nonNullable);
129-
} else if (descriptor.isSetter) {
130-
type = FunctionType(
131-
[type],
132-
VoidType(),
133-
Nullability.nonNullable,
134-
);
135-
name += '=';
136-
}
137-
type = typeParameterResolver.resolve(type);
138-
return '$extension.$name ($type)';
139-
}).toList()
140-
..sort();
122+
var withExtensionNameAndType = descriptors.map((descriptor) {
123+
var extension = _descriptorToExtensionName[descriptor]!;
124+
var name = descriptor.name.text;
125+
var type = _getTypeOfDescriptor(descriptor);
126+
if (descriptor.isGetter) {
127+
type = FunctionType([], type, Nullability.nonNullable);
128+
} else if (descriptor.isSetter) {
129+
type = FunctionType([type], VoidType(), Nullability.nonNullable);
130+
name += '=';
131+
}
132+
type = typeParameterResolver.resolve(type);
133+
return '$extension.$name ($type)';
134+
}).toList()..sort();
141135
return withExtensionNameAndType.join(', ');
142136
}
143137

@@ -233,10 +227,9 @@ class StaticInteropMockValidator {
233227
assert(interopDescriptor.isMethod);
234228
// We don't care about the method's own type parameters to determine
235229
// subtyping. We simply substitute them by their bounds, if any.
236-
final interopMemberType =
237-
interopMember.function
238-
.computeThisFunctionType(Nullability.nonNullable)
239-
.withoutTypeParameters;
230+
final interopMemberType = interopMember.function
231+
.computeThisFunctionType(Nullability.nonNullable)
232+
.withoutTypeParameters;
240233
// Ignore the first argument `this` in the generated procedure.
241234
return FunctionType(
242235
interopMemberType.positionalParameters.skip(1).toList(),

pkg/_js_interop_checks/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ publish_to: none
44

55
environment:
66
# Use min prerelease bound to get the latest formatter changes.
7-
sdk: '^3.7.0'
7+
sdk: '^3.8.0'
88

99
resolution: workspace
1010

0 commit comments

Comments
 (0)