| Index: pkg/analyzer/lib/src/generated/engine.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart
|
| index 4ad8d0117230c61aa8738e7d60ada590934a264d..defec2bf5d7dbba429f4132da756ded9d4b911de 100644
|
| --- a/pkg/analyzer/lib/src/generated/engine.dart
|
| +++ b/pkg/analyzer/lib/src/generated/engine.dart
|
| @@ -1043,6 +1043,8 @@ class AnalysisContextImpl implements InternalAnalysisContext {
|
| this._options.dart2jsHint != options.dart2jsHint ||
|
| (this._options.hint && !options.hint) ||
|
| this._options.preserveComments != options.preserveComments ||
|
| + this._options.enableNullAwareOperators !=
|
| + options.enableNullAwareOperators ||
|
| this._options.enableStrictCallChecks != options.enableStrictCallChecks;
|
| int cacheSize = options.cacheSize;
|
| if (this._options.cacheSize != cacheSize) {
|
| @@ -1068,6 +1070,7 @@ class AnalysisContextImpl implements InternalAnalysisContext {
|
| this._options.generateImplicitErrors = options.generateImplicitErrors;
|
| this._options.generateSdkErrors = options.generateSdkErrors;
|
| this._options.dart2jsHint = options.dart2jsHint;
|
| + this._options.enableNullAwareOperators = options.enableNullAwareOperators;
|
| this._options.enableStrictCallChecks = options.enableStrictCallChecks;
|
| this._options.hint = options.hint;
|
| this._options.incremental = options.incremental;
|
| @@ -4663,7 +4666,7 @@ class AnalysisContextImpl implements InternalAnalysisContext {
|
| Stopwatch perfCounter = new Stopwatch()..start();
|
| PoorMansIncrementalResolver resolver = new PoorMansIncrementalResolver(
|
| typeProvider, unitSource, dartEntry, oldUnit,
|
| - analysisOptions.incrementalApi);
|
| + analysisOptions.incrementalApi, analysisOptions);
|
| bool success = resolver.resolve(newCode);
|
| AnalysisEngine.instance.instrumentationService.logPerformance(
|
| AnalysisPerformanceKind.INCREMENTAL, perfCounter,
|
| @@ -5994,6 +5997,11 @@ abstract class AnalysisOptions {
|
| bool get enableEnum;
|
|
|
| /**
|
| + * Return `true` to enable null-aware operators (DEP 9).
|
| + */
|
| + bool get enableNullAwareOperators;
|
| +
|
| + /**
|
| * Return `true` to strictly follow the specification when generating
|
| * warnings on "call" methods (fixes dartbug.com/21938).
|
| */
|
| @@ -6087,6 +6095,11 @@ class AnalysisOptionsImpl implements AnalysisOptions {
|
| bool dart2jsHint = true;
|
|
|
| /**
|
| + * A flag indicating whether null-aware operators should be parsed (DEP 9).
|
| + */
|
| + bool enableNullAwareOperators = false;
|
| +
|
| + /**
|
| * A flag indicating whether analysis is to strictly follow the specification
|
| * when generating warnings on "call" methods (fixes dartbug.com/21938).
|
| */
|
| @@ -6151,6 +6164,7 @@ class AnalysisOptionsImpl implements AnalysisOptions {
|
| analyzeFunctionBodiesPredicate = options.analyzeFunctionBodiesPredicate;
|
| cacheSize = options.cacheSize;
|
| dart2jsHint = options.dart2jsHint;
|
| + enableNullAwareOperators = options.enableNullAwareOperators;
|
| enableStrictCallChecks = options.enableStrictCallChecks;
|
| generateImplicitErrors = options.generateImplicitErrors;
|
| generateSdkErrors = options.generateSdkErrors;
|
| @@ -8954,8 +8968,8 @@ class IncrementalAnalysisTask extends AnalysisTask {
|
| // Produce an updated token stream
|
| CharacterReader reader = new CharSequenceReader(cache.newContents);
|
| BooleanErrorListener errorListener = new BooleanErrorListener();
|
| - IncrementalScanner scanner =
|
| - new IncrementalScanner(cache.source, reader, errorListener);
|
| + IncrementalScanner scanner = new IncrementalScanner(
|
| + cache.source, reader, errorListener, context.analysisOptions);
|
| scanner.rescan(cache.resolvedUnit.beginToken, cache.offset, cache.oldLength,
|
| cache.newLength);
|
| if (errorListener.errorReported) {
|
| @@ -9548,7 +9562,8 @@ class ParseHtmlTask extends AnalysisTask {
|
| ht.Token token = scanner.tokenize();
|
| _lineInfo = new LineInfo(scanner.lineStarts);
|
| RecordingErrorListener errorListener = new RecordingErrorListener();
|
| - _unit = new ht.HtmlParser(source, errorListener).parse(token, _lineInfo);
|
| + _unit = new ht.HtmlParser(source, errorListener, context.analysisOptions)
|
| + .parse(token, _lineInfo);
|
| _unit.accept(new RecursiveXmlVisitor_ParseHtmlTask_internalPerform(
|
| this, errorListener));
|
| _errors = errorListener.getErrorsForSource(source);
|
| @@ -10781,6 +10796,8 @@ class ScanDartTask extends AnalysisTask {
|
| Scanner scanner = new Scanner(
|
| source, new CharSequenceReader(_content), errorListener);
|
| scanner.preserveComments = context.analysisOptions.preserveComments;
|
| + scanner.enableNullAwareOperators =
|
| + context.analysisOptions.enableNullAwareOperators;
|
| _tokenStream = scanner.tokenize();
|
| _lineInfo = new LineInfo(scanner.lineStarts);
|
| _errors = errorListener.getErrorsForSource(source);
|
|
|