Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 5add47f

Browse files
author
Dart CI
committed
Version 2.18.0-190.0.dev
Merge commit 'd1affb719fa57e999e96703555085d2065a77d29' into 'dev'
2 parents 5beb49c + d1affb7 commit 5add47f

File tree

64 files changed

+1155
-828
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1155
-828
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,13 @@ them, you must set the lower bound on the SDK constraint for your package to
140140
141141
### Tools
142142
143+
#### Dart command line
144+
145+
- **Breaking change** [#46100](https://github.com/dart-lang/sdk/issues/46100):
146+
The standalone `dart2js` and `dartdevc` tools have been removed as previously
147+
announced. `dart2js` is replaced by the `dart compile js` command, `dartdevc`
148+
is no longer exposed as a command-line tool.
149+
143150
#### Linter
144151
145152
Updated the Linter to `1.25.0`, which includes changes that

DEPS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ vars = {
105105
# For more details, see https://github.com/dart-lang/sdk/issues/30164.
106106
"dart_style_rev": "d7b73536a8079331c888b7da539b80e6825270ea",
107107

108-
"dartdoc_rev": "b61647bc3833302c23bd79f03aa1fbe83578af50",
108+
"dartdoc_rev": "58348a98b992ce99b95d23131b67227bdb2b4875",
109109
"devtools_rev": "51ac983d2db7eb19b3ce5956cb70b769d74fe784",
110110
"ffi_rev": "0c8364a728cfe4e4ba859c53b99d56b3dbe3add4",
111111
"file_rev": "0132eeedea2933513bf230513a766a8baeab0c4f",
@@ -114,7 +114,7 @@ vars = {
114114
"html_rev": "f108bce59d136c584969fd24a5006914796cf213",
115115
"http_multi_server_rev": "35a3b947256768426090e3b1f5132e4fc23c175d",
116116
"http_parser_rev": "9126ee04e77fd8e4e2e6435b503ee4dd708d7ddc",
117-
"http_rev": "2993ea5dff5ffb066b4a35c707e7a2b8dcfa17c2",
117+
"http_rev": "0c2293062d7c1fa472f299da764a7dbb3895ee22",
118118
"icu_rev": "81d656878ec611cb0b42d52c82e9dae93920d9ba",
119119
"intl_rev": "9145f308f1458f37630a1ffce3b7d3b471ebbc56",
120120
"jinja2_rev": "2222b31554f03e62600cd7e383376a7c187967a1",

docs/process/breaking-changes.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@ abide by the following basic conditions:
4242
documentation (for example, must not mixin a class clearly documented as
4343
not intended to be used as a mixin).
4444

45+
* Must set an explicit
46+
[language version constraint](https://dart.dev/guides/language/evolution#language-versioning)
47+
to indicate which version of the language it requires. Incompatibilities
48+
introduced in new language versions are not considered breaking as long as
49+
the SDK continues to support the older version of the language.
50+
4551
Compatibility is only considered between stable releases (i.e. releases from the
4652
[Dart stable channel](https://dart.dev/tools/sdk/archive#stable-channel)).
4753

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

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,15 @@ class JsUtilWasmOptimizer extends Transformer {
4949
final Procedure _setPropertyTarget;
5050
final Procedure _jsifyRawTarget;
5151
final Procedure _newObjectTarget;
52-
final Procedure _wrapDartCallbackTarget;
52+
final Procedure _wrapDartFunctionTarget;
5353
final Procedure _allowInteropTarget;
5454
final Class _wasmAnyRefClass;
5555
final Class _objectClass;
5656
final Class _pragmaClass;
5757
final Field _pragmaName;
5858
final Field _pragmaOptions;
5959
final Member _globalThisMember;
60-
int _callbackTrampolineN = 1;
60+
int _functionTrampolineN = 1;
6161

6262
final CoreTypes _coreTypes;
6363
final StatefulStaticTypeContext _staticTypeContext;
@@ -77,8 +77,8 @@ class JsUtilWasmOptimizer extends Transformer {
7777
.getTopLevelProcedure('dart:js_util', 'setProperty'),
7878
_jsifyRawTarget = _coreTypes.index
7979
.getTopLevelProcedure('dart:_js_helper', 'jsifyRaw'),
80-
_wrapDartCallbackTarget = _coreTypes.index
81-
.getTopLevelProcedure('dart:_js_helper', '_wrapDartCallback'),
80+
_wrapDartFunctionTarget = _coreTypes.index
81+
.getTopLevelProcedure('dart:_js_helper', '_wrapDartFunction'),
8282
_newObjectTarget =
8383
_coreTypes.index.getTopLevelProcedure('dart:js_util', 'newObject'),
8484
_allowInteropTarget =
@@ -210,11 +210,11 @@ class JsUtilWasmOptimizer extends Transformer {
210210
/// trampoline expects a Dart callback as its first argument, followed by all
211211
/// of the arguments to the Dart callback as Dart objects. The trampoline will
212212
/// cast all incoming Dart objects to the appropriate types, dispatch, and
213-
/// then `jsifyRaw` any returned value. [_createCallbackTrampoline] Returns a
213+
/// then `jsifyRaw` any returned value. [_createFunctionTrampoline] Returns a
214214
/// [String] function name representing the name of the wrapping function.
215215
/// TODO(joshualitt): Share callback trampolines if the [FunctionType]
216216
/// matches.
217-
String _createCallbackTrampoline(Procedure node, FunctionType function) {
217+
String _createFunctionTrampoline(Procedure node, FunctionType function) {
218218
int fileOffset = node.fileOffset;
219219
Library library = node.enclosingLibrary;
220220

@@ -245,11 +245,11 @@ class JsUtilWasmOptimizer extends Transformer {
245245
// a native JS value before being returned to JS.
246246
DartType nullableWasmAnyRefType =
247247
_wasmAnyRefClass.getThisType(_coreTypes, Nullability.nullable);
248-
final callbackTrampolineName =
249-
'|_callbackTrampoline${_callbackTrampolineN++}';
250-
final callbackTrampolineImportName = '\$$callbackTrampolineName';
251-
final callbackTrampoline = Procedure(
252-
Name(callbackTrampolineName, library),
248+
final functionTrampolineName =
249+
'|_functionTrampoline${_functionTrampolineN++}';
250+
final functionTrampolineImportName = '\$$functionTrampolineName';
251+
final functionTrampoline = Procedure(
252+
Name(functionTrampolineName, library),
253253
ProcedureKind.Method,
254254
FunctionNode(
255255
ReturnStatement(StaticInvocation(
@@ -268,24 +268,24 @@ class JsUtilWasmOptimizer extends Transformer {
268268
fileUri: node.fileUri)
269269
..fileOffset = fileOffset
270270
..isNonNullableByDefault = true;
271-
callbackTrampoline.addAnnotation(
271+
functionTrampoline.addAnnotation(
272272
ConstantExpression(InstanceConstant(_pragmaClass.reference, [], {
273273
_pragmaName.fieldReference: StringConstant('wasm:export'),
274274
_pragmaOptions.fieldReference:
275-
StringConstant(callbackTrampolineImportName)
275+
StringConstant(functionTrampolineImportName)
276276
})));
277-
library.addProcedure(callbackTrampoline);
278-
return callbackTrampolineImportName;
277+
library.addProcedure(functionTrampoline);
278+
return functionTrampolineImportName;
279279
}
280280

281281
/// Lowers a [StaticInvocation] of `allowInterop` to
282-
/// [_createCallbackTrampoline] followed by `_wrapDartCallback`.
282+
/// [_createFunctionTrampoline] followed by `_wrapDartFunction`.
283283
StaticInvocation _allowInterop(
284284
Procedure node, FunctionType type, Expression argument) {
285-
String callbackTrampolineName = _createCallbackTrampoline(node, type);
285+
String functionTrampolineName = _createFunctionTrampoline(node, type);
286286
return StaticInvocation(
287-
_wrapDartCallbackTarget,
288-
Arguments([argument, StringLiteral(callbackTrampolineName)],
287+
_wrapDartFunctionTarget,
288+
Arguments([argument, StringLiteral(functionTrampolineName)],
289289
types: [type]));
290290
}
291291

pkg/analysis_server/lib/src/lsp/handlers/handler_completion_resolve.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ class CompletionResolveHandler
153153
filterText: item.filterText,
154154
insertText: newInsertText,
155155
insertTextFormat: item.insertTextFormat,
156+
insertTextMode: item.insertTextMode,
156157
textEdit: supportsInsertReplace && insertionRange != replacementRange
157158
? Either2<InsertReplaceEdit, TextEdit>.t1(
158159
InsertReplaceEdit(

pkg/analysis_server/lib/src/lsp/mapping.dart

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,10 @@ lsp.CompletionItem declarationToCompletionItem(
299299
label += declaration.parameterNames?.isNotEmpty ?? false ? '(…)' : '()';
300300
}
301301

302+
final insertionRange = toRange(lineInfo, replacementOffset, insertLength);
303+
final replacementRange =
304+
toRange(lineInfo, replacementOffset, replacementLength);
305+
302306
final insertTextInfo = _buildInsertText(
303307
supportsSnippets: supportsSnippets,
304308
includeCommitCharacters: includeCommitCharacters,
@@ -325,6 +329,7 @@ lsp.CompletionItem declarationToCompletionItem(
325329
.contains(lsp.CompletionItemTag.Deprecated);
326330
final supportsAsIsInsertMode =
327331
capabilities.completionInsertTextModes.contains(InsertTextMode.asIs);
332+
final supportsInsertReplace = capabilities.insertReplaceCompletionRanges;
328333

329334
final completionKind = declarationKindToCompletionItemKind(
330335
capabilities.completionItemKinds, declaration.kind);
@@ -364,6 +369,20 @@ lsp.CompletionItem declarationToCompletionItem(
364369
insertTextMode: supportsAsIsInsertMode && isMultilineCompletion
365370
? InsertTextMode.asIs
366371
: null,
372+
textEdit: supportsInsertReplace && insertionRange != replacementRange
373+
? Either2<InsertReplaceEdit, TextEdit>.t1(
374+
InsertReplaceEdit(
375+
insert: insertionRange,
376+
replace: replacementRange,
377+
newText: insertText,
378+
),
379+
)
380+
: Either2<InsertReplaceEdit, TextEdit>.t2(
381+
TextEdit(
382+
range: replacementRange,
383+
newText: insertText,
384+
),
385+
),
367386
// data, used for completionItem/resolve.
368387
data: lsp.DartSuggestionSetCompletionItemResolutionInfo(
369388
file: file,

pkg/analysis_server/lib/src/services/correction/dart/add_async.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dar
1111
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
1212

1313
class AddAsync extends CorrectionProducer {
14+
// todo(pq): consider adding a variation that adds an `await` as well
15+
1416
/// A flag indicating whether this producer is producing a fix in the case
1517
/// where a function is missing a return at the end.
1618
final bool isForMissingReturn;

pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1650,7 +1650,7 @@ LintCode.diagnostic_describe_all_properties:
16501650
LintCode.directives_ordering:
16511651
status: hasFix
16521652
LintCode.discarded_futures:
1653-
status: needsEvaluation
1653+
status: hasFix
16541654
LintCode.do_not_use_environment:
16551655
status: needsEvaluation
16561656
LintCode.empty_catches:

pkg/analysis_server/lib/src/services/correction/fix_internal.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,9 @@ class FixProcessor extends BaseProcessor {
447447
LintNames.directives_ordering: [
448448
OrganizeImports.new,
449449
],
450+
LintNames.discarded_futures: [
451+
AddAsync.new,
452+
],
450453
LintNames.empty_catches: [
451454
RemoveEmptyCatch.new,
452455
],

pkg/analysis_server/lib/src/services/linter/lint_names.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ class LintNames {
5353
static const String diagnostic_describe_all_properties =
5454
'diagnostic_describe_all_properties';
5555
static const String directives_ordering = 'directives_ordering';
56+
static const String discarded_futures = 'discarded_futures';
5657
static const String empty_catches = 'empty_catches';
5758
static const String empty_constructor_bodies = 'empty_constructor_bodies';
5859
static const String empty_statements = 'empty_statements';

0 commit comments

Comments
 (0)