Skip to content

Commit 1c09beb

Browse files
committed
Version 1.19.0-dev.1.0
Merge 'b78aeee6f20dcad020267443bae6b00017f1eae0' into dev
2 parents 653b703 + b78aeee commit 1c09beb

File tree

109 files changed

+3496
-823
lines changed

Some content is hidden

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

109 files changed

+3496
-823
lines changed

DEPS

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ vars = {
5656
"dart_services_rev" : "@7aea2574e6f3924bf409a80afb8ad52aa2be4f97",
5757
"dart_style_tag": "@0.2.4",
5858
"dartdoc_tag" : "@v0.9.6+2",
59-
"dev_compiler_rev": "@108f2a2a03b1926e640013f3244df625b42ec380",
59+
"dev_compiler_rev": "@d39946fd7af11d02a8831dbd7a2b776c69099ff6",
6060
"fixnum_tag": "@0.10.5",
6161
"func_rev": "@8d4aea75c21be2179cb00dc2b94a71414653094e",
6262
"glob_rev": "@704cf75e4f26b417505c5c611bdaacd8808467dd",
@@ -71,7 +71,7 @@ vars = {
7171
"isolate_tag": "@0.2.2",
7272
"jinja2_rev": "@2222b31554f03e62600cd7e383376a7c187967a1",
7373
"json_rpc_2_tag": "@2.0.0",
74-
"linter_rev": "@7ca3aab6ca45b988440e425c187993a533fbe27e",
74+
"linter_rev": "@0abfb82a7d8c36946a2a9f00c699fa5a925abec3",
7575
"logging_rev": "@85d83e002670545e9039ad3985f0018ab640e597",
7676
"markdown_rev": "@4aaadf3d940bb172e1f6285af4d2b1710d309982",
7777
"matcher_tag": "@0.12.0",
@@ -81,7 +81,7 @@ vars = {
8181
"oauth2_tag": "@1.0.0",
8282
"observatory_pub_packages_rev": "@e5e1e543bea10d4bed95b22ad3e7aa2b20a23584",
8383
"observe_rev": "@eee2b8ec34236fa46982575fbccff84f61202ac6",
84-
"package_config_rev": "@0.1.5",
84+
"package_config_rev": "@1.0.0",
8585
"path_tag": "@1.3.6",
8686
"plugin_tag": "@0.2.0",
8787
"ply_rev": "@604b32590ffad5cbb82e4afef1d305512d06ae93",

pkg/analysis_server/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ dependencies:
1212
isolate: ^0.2.2
1313
linter: ^0.1.16
1414
logging: any
15+
package_config: '>=0.1.5 <2.0.0'
1516
path: any
1617
plugin: ^0.2.0
1718
watcher: any

pkg/analysis_server/test/context_manager_test.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import 'dart:collection';
99
import 'package:analysis_server/src/context_manager.dart';
1010
import 'package:analyzer/file_system/file_system.dart';
1111
import 'package:analyzer/file_system/memory_file_system.dart';
12-
import 'package:analyzer/file_system/physical_file_system.dart';
1312
import 'package:analyzer/instrumentation/instrumentation.dart';
1413
import 'package:analyzer/source/embedder.dart';
1514
import 'package:analyzer/source/error_processor.dart';

pkg/analysis_server/test/services/completion/completion_target_test.dart

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,7 @@ class CompletionTargetTest extends AbstractContextTest {
6464
test_ArgumentList_InstanceCreationExpression2() {
6565
// ArgumentList InstanceCreationExpression Block
6666
addTestSource('main() {new Foo(a,^)}');
67-
if (context.analysisOptions.enableTrailingCommas) {
68-
assertTarget(')', '(a)', argIndex: 1);
69-
} else {
70-
assertTarget('', '(a, )', argIndex: 1);
71-
}
67+
assertTarget(')', '(a)', argIndex: 1);
7268
}
7369

7470
test_ArgumentList_InstanceCreationExpression_functionArg2() {
@@ -104,11 +100,7 @@ class CompletionTargetTest extends AbstractContextTest {
104100
test_ArgumentList_MethodInvocation4() {
105101
// ArgumentList MethodInvocation Block
106102
addTestSource('main() {foo(n,^)}');
107-
if (context.analysisOptions.enableTrailingCommas) {
108-
assertTarget(')', '(n)', argIndex: 1);
109-
} else {
110-
assertTarget('', '(n, )', argIndex: 1);
111-
}
103+
assertTarget(')', '(n)', argIndex: 1);
112104
}
113105

114106
test_ArgumentList_MethodInvocation_functionArg() {

pkg/analyzer/lib/src/context/cache.dart

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import 'dart:async';
88
import 'dart:collection';
99

1010
import 'package:analyzer/file_system/file_system.dart';
11-
import 'package:analyzer/src/dart/element/element.dart'
12-
show ElementImpl, Modifier;
1311
import 'package:analyzer/src/generated/engine.dart';
1412
import 'package:analyzer/src/generated/java_engine.dart';
1513
import 'package:analyzer/src/generated/source.dart';
@@ -559,7 +557,7 @@ class CacheEntry {
559557
// }
560558
// valueStr = valueStr.replaceAll('\n', '\\n');
561559
// print(
562-
// 'setValue $descriptor for $target value=$valueStr $dependedOn=$dependedOn');
560+
// 'setValue $descriptor for $target value=$valueStr dependedOn=$dependedOn');
563561
// }
564562
_validateStateChange(descriptor, CacheState.VALID);
565563
TargetedResult thisResult = new TargetedResult(target, descriptor);
@@ -659,44 +657,51 @@ class CacheEntry {
659657
return;
660658
}
661659
}
662-
// if (deltaResult != null && deltaResult != DeltaResult.KEEP_CONTINUE) {
660+
// if (deltaResult != null) {
663661
// String indent = ' ' * level;
664662
// String deltaResultName = deltaResult.toString().split('.').last;
665663
// print('[$id]$indent$deltaResultName $descriptor for $target');
666664
// }
667665
if (deltaResult == DeltaResult.INVALIDATE_NO_DELTA) {
668666
delta = null;
669667
}
670-
if (deltaResult == null ||
668+
if (deltaResult == DeltaResult.INVALIDATE_KEEP_DEPENDENCIES) {
669+
thisData.value = descriptor.defaultValue;
670+
thisData.state = CacheState.INVALID;
671+
} else if (deltaResult == null ||
671672
deltaResult == DeltaResult.INVALIDATE ||
672673
deltaResult == DeltaResult.INVALIDATE_NO_DELTA) {
673674
_resultMap.remove(descriptor);
674-
// {
675-
// String indent = ' ' * level;
676-
// print('[$id]$indent invalidate $descriptor for $target');
677-
// }
678-
}
679-
// Stop depending on other results.
680-
if (deltaResult != DeltaResult.KEEP_CONTINUE) {
681-
TargetedResult thisResult = new TargetedResult(target, descriptor);
682-
List<AnalysisCache> caches = _partition.containingCaches;
683-
int cacheLength = caches.length;
684-
List<TargetedResult> results = thisData.dependedOnResults;
685-
int resultLength = results.length;
686-
for (int i = 0; i < resultLength; i++) {
687-
TargetedResult dependedOnResult = results[i];
688-
for (int j = 0; j < cacheLength; j++) {
689-
AnalysisCache cache = caches[j];
690-
CacheEntry entry = cache.get(dependedOnResult.target);
691-
if (entry != null) {
692-
ResultData data =
693-
entry.getResultDataOrNull(dependedOnResult.result);
694-
if (data != null) {
695-
data.dependentResults.remove(thisResult);
675+
// Stop depending on other results.
676+
if (deltaResult != DeltaResult.KEEP_CONTINUE) {
677+
TargetedResult thisResult = new TargetedResult(target, descriptor);
678+
List<AnalysisCache> caches = _partition.containingCaches;
679+
int cacheLength = caches.length;
680+
List<TargetedResult> results = thisData.dependedOnResults;
681+
int resultLength = results.length;
682+
for (int i = 0; i < resultLength; i++) {
683+
TargetedResult dependedOnResult = results[i];
684+
for (int j = 0; j < cacheLength; j++) {
685+
AnalysisCache cache = caches[j];
686+
CacheEntry entry = cache.get(dependedOnResult.target);
687+
if (entry != null) {
688+
ResultData data =
689+
entry.getResultDataOrNull(dependedOnResult.result);
690+
if (data != null) {
691+
data.dependentResults.remove(thisResult);
692+
}
696693
}
697694
}
698695
}
699696
}
697+
// if (deltaResult == null) {
698+
// String indent = ' ' * level;
699+
// print('[$id]$indent invalidate $descriptor for $target');
700+
// if ('$descriptor for $target' ==
701+
// 'READY_LIBRARY_ELEMENT2 for /Users/scheglov/tmp/limited-invalidation/async/lib/async.dart') {
702+
// print('interesting');
703+
// }
704+
// }
700705
}
701706
// Invalidate results that depend on this result.
702707
_invalidateDependentResults(id, thisData, delta, level + 1);
@@ -1269,10 +1274,16 @@ class Delta {
12691274
enum DeltaResult {
12701275
/**
12711276
* Invalidate this result and continue visiting dependent results
1272-
* with this [Delta].
1277+
* with this [Delta]. Remove the result and all its dependencies.
12731278
*/
12741279
INVALIDATE,
12751280

1281+
/**
1282+
* Invalidate this result and continue visiting dependent results
1283+
* with this [Delta]. Keep the dependencies of this result.
1284+
*/
1285+
INVALIDATE_KEEP_DEPENDENCIES,
1286+
12761287
/**
12771288
* Invalidate this result and stop using this [Delta], so unconditionally
12781289
* invalidate all the dependent results.

pkg/analyzer/lib/src/context/context.dart

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -298,8 +298,7 @@ class AnalysisContextImpl implements InternalAnalysisContext {
298298
options.enableStrictCallChecks ||
299299
this._options.enableGenericMethods != options.enableGenericMethods ||
300300
this._options.enableAsync != options.enableAsync ||
301-
this._options.enableSuperMixins != options.enableSuperMixins ||
302-
this._options.enableTrailingCommas != options.enableTrailingCommas;
301+
this._options.enableSuperMixins != options.enableSuperMixins;
303302
int cacheSize = options.cacheSize;
304303
if (this._options.cacheSize != cacheSize) {
305304
this._options.cacheSize = cacheSize;
@@ -315,7 +314,6 @@ class AnalysisContextImpl implements InternalAnalysisContext {
315314
this._options.enableAsync = options.enableAsync;
316315
this._options.enableSuperMixins = options.enableSuperMixins;
317316
this._options.enableTiming = options.enableTiming;
318-
this._options.enableTrailingCommas = options.enableTrailingCommas;
319317
this._options.hint = options.hint;
320318
this._options.incremental = options.incremental;
321319
this._options.incrementalApi = options.incrementalApi;
@@ -1859,9 +1857,10 @@ class AnalysisContextImpl implements InternalAnalysisContext {
18591857
// TODO(scheglov) Incorrect implementation in general.
18601858
entry.setState(TOKEN_STREAM, CacheState.FLUSHED);
18611859
entry.setState(PARSED_UNIT, CacheState.FLUSHED);
1862-
List<Source> librarySources = getLibrariesContaining(source);
1863-
if (librarySources.length == 1) {
1864-
Source librarySource = librarySources[0];
1860+
SourceKind sourceKind = getKindOf(source);
1861+
List<Source> partSources = getResult(source, INCLUDED_PARTS);
1862+
if (sourceKind == SourceKind.LIBRARY && partSources.isEmpty) {
1863+
Source librarySource = source;
18651864
// Try to find an old unit which has element model.
18661865
CacheEntry unitEntry =
18671866
getCacheEntry(new LibrarySpecificUnit(librarySource, source));

pkg/analyzer/lib/src/dart/ast/ast.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ class ArgumentListImpl extends AstNodeImpl implements ArgumentList {
398398
@override
399399
void set correspondingPropagatedParameters(
400400
List<ParameterElement> parameters) {
401-
if (parameters.length != _arguments.length) {
401+
if (parameters != null && parameters.length != _arguments.length) {
402402
throw new IllegalArgumentException(
403403
"Expected ${_arguments.length} parameters, not ${parameters.length}");
404404
}
@@ -410,7 +410,7 @@ class ArgumentListImpl extends AstNodeImpl implements ArgumentList {
410410

411411
@override
412412
void set correspondingStaticParameters(List<ParameterElement> parameters) {
413-
if (parameters.length != _arguments.length) {
413+
if (parameters != null && parameters.length != _arguments.length) {
414414
throw new IllegalArgumentException(
415415
"Expected ${_arguments.length} parameters, not ${parameters.length}");
416416
}

pkg/analyzer/lib/src/generated/element_resolver.dart

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -698,16 +698,12 @@ class ElementResolver extends SimpleAstVisitor<Object> {
698698
if (staticInvokeType != null) {
699699
List<ParameterElement> parameters =
700700
_computeCorrespondingParameters(argumentList, staticInvokeType);
701-
if (parameters != null) {
702-
argumentList.correspondingStaticParameters = parameters;
703-
}
701+
argumentList.correspondingStaticParameters = parameters;
704702
}
705703
if (propagatedInvokeType != null) {
706704
List<ParameterElement> parameters =
707705
_computeCorrespondingParameters(argumentList, propagatedInvokeType);
708-
if (parameters != null) {
709-
argumentList.correspondingPropagatedParameters = parameters;
710-
}
706+
argumentList.correspondingPropagatedParameters = parameters;
711707
}
712708
//
713709
// Then check for error conditions.

pkg/analyzer/lib/src/generated/engine.dart

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1086,12 +1086,6 @@ abstract class AnalysisOptions {
10861086
*/
10871087
bool get enableTiming;
10881088

1089-
/**
1090-
* Return `true` to enable trailing commas in parameter and argument lists
1091-
* (sdk#26647).
1092-
*/
1093-
bool get enableTrailingCommas;
1094-
10951089
/**
10961090
* A flag indicating whether finer grained dependencies should be used
10971091
* instead of just source level dependencies.
@@ -1347,7 +1341,6 @@ class AnalysisOptionsImpl implements AnalysisOptions {
13471341
enableGenericMethods = options.enableGenericMethods;
13481342
enableSuperMixins = options.enableSuperMixins;
13491343
enableTiming = options.enableTiming;
1350-
enableTrailingCommas = options.enableTrailingCommas;
13511344
generateImplicitErrors = options.generateImplicitErrors;
13521345
generateSdkErrors = options.generateSdkErrors;
13531346
hint = options.hint;

pkg/analyzer/lib/src/generated/parser.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2188,12 +2188,6 @@ class Parser {
21882188
*/
21892189
bool parseGenericMethodComments = false;
21902190

2191-
/**
2192-
* A flag indicating whether the parser is to parse trailing commas in
2193-
* parameter and argument lists (sdk#26647).
2194-
*/
2195-
bool parseTrailingCommas = false;
2196-
21972191
/**
21982192
* Initialize a newly created parser to parse tokens in the given [_source]
21992193
* and to report any errors that are found to the given [_errorListener].
@@ -2330,7 +2324,7 @@ class Parser {
23302324
bool foundNamedArgument = argument is NamedExpression;
23312325
bool generatedError = false;
23322326
while (_optional(TokenType.COMMA)) {
2333-
if (parseTrailingCommas && _matches(TokenType.CLOSE_PAREN)) {
2327+
if (_matches(TokenType.CLOSE_PAREN)) {
23342328
break;
23352329
}
23362330
argument = parseArgument();
@@ -6146,7 +6140,7 @@ class Parser {
61466140
type = _currentToken.type;
61476141

61486142
// Advance past trailing commas as appropriate.
6149-
if (parseTrailingCommas && type == TokenType.COMMA) {
6143+
if (type == TokenType.COMMA) {
61506144
// Only parse commas trailing normal (non-positional/named) params.
61516145
if (rightSquareBracket == null && rightCurlyBracket == null) {
61526146
Token next = _peek();

0 commit comments

Comments
 (0)