Suppress stdout compile diagnostic when compile expressions. (#18703) * Suppress stdout compile diagnostic when compile expressions. This fixes https://github.com/flutter/flutter/issues/18574. * Use equal sign for default values
diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart index d7994ff..4a07e1b 100644 --- a/packages/flutter_tools/lib/src/compile.dart +++ b/packages/flutter_tools/lib/src/compile.dart
@@ -35,6 +35,8 @@ String boundaryKey; Completer<CompilerOutput> compilerOutput; + bool _suppressCompilerMessages; + void handler(String string) { const String kResultPrefix = 'result '; if (boundaryKey == null) { @@ -51,15 +53,17 @@ string.substring(boundaryKey.length + 1, spaceDelimiter), int.parse(string.substring(spaceDelimiter + 1).trim()))); } - else + else if (!_suppressCompilerMessages) { consumer('compiler message: $string'); + } } // This is needed to get ready to process next compilation result output, // with its own boundary key and new completer. - void reset() { + void reset({bool suppressCompilerMessages = false}) { boundaryKey = null; compilerOutput = new Completer<CompilerOutput>(); + _suppressCompilerMessages = suppressCompilerMessages; } } @@ -394,7 +398,7 @@ Future<CompilerOutput> _compileExpression( _CompileExpressionRequest request) async { - _stdoutHandler.reset(); + _stdoutHandler.reset(suppressCompilerMessages: true); // 'compile-expression' should be invoked after compiler has been started, // program was compiled.