Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reland "add limited analysis options (#17332)" #17374

Merged
merged 2 commits into from
Mar 27, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,16 @@ task:
- name: web_tests-7_last-linux # last Web shard must end with _last
<< : *WEB_SHARD_TEMPLATE

# - name: web_engine_analysis
# compile_host_script: |
# cd $ENGINE_PATH/src
# ./flutter/tools/gn --unoptimized --full-dart-sdk
# ninja -C out/host_debug_unopt
# script:
# - cd $ENGINE_PATH/src/flutter/lib/web_ui
# - $ENGINE_PATH/src/out/host_debug_unopt/dart-sdk/bin/pub get
# - $ENGINE_PATH/src/out/host_debug_unopt/dart-sdk/bin/dartanalyzer --fatal-warnings --fatal-hints dev/ lib/ test/ tool/

- name: web_engine_integration_test_linux
compile_host_script: |
cd $ENGINE_PATH/src
Expand Down
88 changes: 87 additions & 1 deletion lib/web_ui/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1 +1,87 @@
# Intentionally kept empty.
# This is copy of the root analysis_options.yaml. As we clean up the Web code,
# we'll be uncommenting rules and gradually fix the code. When all rules are
# uncommented, we'll delete this file and simply inherit the root options.

analyzer:
# TODO(uncomment) strong-mode:
# TODO(uncomment) implicit-casts: false
# TODO(uncomment) implicit-dynamic: false
errors:
missing_required_param: warning
missing_return: warning
native_function_body_in_non_sdk_code: ignore
todo: ignore

linter:
rules:
- always_declare_return_types
# TODO(uncomment) - always_put_control_body_on_new_line
# TODO(uncomment) - always_specify_types
# TODO(uncomment) - annotate_overrides
# TODO(uncomment) - avoid_classes_with_only_static_members
# TODO(uncomment) - avoid_empty_else
# TODO(uncomment) - avoid_function_literals_in_foreach_calls
# TODO(uncomment) - avoid_init_to_null
# TODO(uncomment) - avoid_null_checks_in_equality_operators
# TODO(uncomment) - avoid_relative_lib_imports
# TODO(uncomment) - avoid_renaming_method_parameters
# TODO(uncomment) - avoid_return_types_on_setters
# TODO(uncomment) - avoid_slow_async_io
# TODO(uncomment) - await_only_futures
# TODO(uncomment) - camel_case_types
# TODO(uncomment) - cancel_subscriptions
# TODO(uncomment) - control_flow_in_finally
# TODO(uncomment) - directives_ordering
# TODO(uncomment) - empty_catches
# TODO(uncomment) - empty_constructor_bodies
# TODO(uncomment) - empty_statements
# TODO(uncomment) - hash_and_equals
# TODO(uncomment) - implementation_imports
# TODO(uncomment) - iterable_contains_unrelated_type
# TODO(uncomment) - library_names
# TODO(uncomment) - library_prefixes
# TODO(uncomment) - list_remove_unrelated_type
# TODO(uncomment) - no_adjacent_strings_in_list
# TODO(uncomment) - no_duplicate_case_values
# TODO(uncomment) - non_constant_identifier_names
# TODO(uncomment) - overridden_fields
# TODO(uncomment) - package_api_docs
# TODO(uncomment) - package_names
# TODO(uncomment) - package_prefixed_library_names
# TODO(uncomment) - prefer_adjacent_string_concatenation
# TODO(uncomment) - prefer_asserts_in_initializer_lists
# TODO(uncomment) - prefer_collection_literals
# TODO(uncomment) - prefer_conditional_assignment
# TODO(uncomment) - prefer_const_constructors
# TODO(uncomment) - prefer_const_constructors_in_immutables
# TODO(uncomment) - prefer_const_declarations
# TODO(uncomment) - prefer_const_literals_to_create_immutables
# TODO(uncomment) - prefer_contains
# TODO(uncomment) - prefer_equal_for_default_values
# TODO(uncomment) - prefer_final_locals
# TODO(uncomment) - prefer_foreach
# TODO(uncomment) - prefer_generic_function_type_aliases
# TODO(uncomment) - prefer_initializing_formals
# TODO(uncomment) - prefer_is_empty
# TODO(uncomment) - prefer_is_not_empty
# TODO(uncomment) - prefer_single_quotes
# TODO(uncomment) - prefer_typing_uninitialized_variables
# TODO(uncomment) - public_member_api_docs
# TODO(uncomment) - recursive_getters
# TODO(uncomment) - slash_for_doc_comments
# TODO(uncomment) - sort_unnamed_constructors_first
# TODO(uncomment) - test_types_in_equals
# TODO(uncomment) - throw_in_finally
# TODO(uncomment) - type_init_formals
# TODO(uncomment) - unnecessary_brace_in_string_interps
# TODO(uncomment) - unnecessary_const
# TODO(uncomment) - unnecessary_getters_setters
# TODO(uncomment) - unnecessary_new
# TODO(uncomment) - unnecessary_null_aware_assignments
# TODO(uncomment) - unnecessary_null_in_if_null_operators
# TODO(uncomment) - unnecessary_overrides
# TODO(uncomment) - unnecessary_parenthesis
# TODO(uncomment) - unnecessary_this
# TODO(uncomment) - unrelated_type_equality_checks
# TODO(uncomment) - use_rethrow_when_possible
# TODO(uncomment) - valid_regexps
2 changes: 1 addition & 1 deletion lib/web_ui/dev/browser.dart
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ abstract class Browser {
_processCompleter.complete(process);

var output = Uint8Buffer();
drainOutput(Stream<List<int>> stream) {
void drainOutput(Stream<List<int>> stream) {
try {
_ioSubscriptions
.add(stream.listen(output.addAll, cancelOnError: true));
Expand Down
2 changes: 1 addition & 1 deletion lib/web_ui/dev/firefox_installer_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.6
@TestOn('vm && linux')

// @dart = 2.6
import 'dart:io' as io;

import 'package:path/path.dart' as path;
Expand Down
2 changes: 1 addition & 1 deletion lib/web_ui/dev/test_platform.dart
Original file line number Diff line number Diff line change
Expand Up @@ -744,7 +744,7 @@ class BrowserManager {

var suiteID = _suiteID++;
RunnerSuiteController controller;
closeIframe() {
void closeIframe() {
if (_closed) return;
_controllers.remove(controller);
_channel.sink.add({'command': 'closeSuite', 'id': suiteID});
Expand Down
2 changes: 1 addition & 1 deletion lib/web_ui/lib/src/engine/compositor/vertices.dart
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ class SkVertices implements ui.Vertices {
}
}

static _encodePoints(List<double> points) {
static js.JsArray<js.JsArray<double>> _encodePoints(List<double> points) {
if (points == null) return null;

js.JsArray<js.JsArray<double>> encodedPoints =
Expand Down
1 change: 0 additions & 1 deletion lib/web_ui/lib/src/engine/surface/path_metrics.dart
Original file line number Diff line number Diff line change
Expand Up @@ -616,7 +616,6 @@ class SurfacePathMetricIterator implements Iterator<ui.PathMetric> {

SurfacePathMetric _pathMetric;
_SurfacePathMeasure _pathMeasure;
bool _firstTime = true;

@override
SurfacePathMetric get current => _pathMetric;
Expand Down
2 changes: 0 additions & 2 deletions lib/web_ui/lib/src/engine/window.dart
Original file line number Diff line number Diff line change
Expand Up @@ -555,9 +555,7 @@ class EngineWindow extends ui.Window {

bool _handleWebTestEnd2EndMessage(MethodCodec codec, ByteData data) {
final MethodCall decoded = codec.decodeMethodCall(data);
final Map<String, dynamic> message = decoded.arguments;
double ratio = double.parse(decoded.arguments);
bool result = false;
switch(decoded.method) {
case 'setDevicePixelRatio':
window.debugOverrideDevicePixelRatio(ratio);
Expand Down
2 changes: 0 additions & 2 deletions lib/web_ui/lib/src/ui/painting.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1069,8 +1069,6 @@ abstract class Shader {
/// There are several types of gradients, represented by the various
/// constructors on this class.
abstract class Gradient extends Shader {
Gradient._() : super._();

/// Creates a linear gradient from `from` to `to`.
///
/// If `colorStops` is provided, `colorStops[i]` is a number from 0.0 to 1.0
Expand Down
8 changes: 0 additions & 8 deletions lib/web_ui/lib/src/ui/text.dart
Original file line number Diff line number Diff line change
Expand Up @@ -866,14 +866,6 @@ class TextBox {
this.direction,
);

TextBox._(
this.left,
this.top,
this.right,
this.bottom,
int directionIndex,
) : direction = TextDirection.values[directionIndex];

/// The left edge of the text box, irrespective of direction.
///
/// To get the leading edge (which may depend on the [direction]), consider [start].
Expand Down
2 changes: 1 addition & 1 deletion lib/web_ui/test/engine/image/html_image_codec_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Future<void> main() async {
chunkCallback: (int loaded, int total) {
buffer.write('$loaded/$total,');
});
final ui.FrameInfo frameInfo = await codec.getNextFrame();
await codec.getNextFrame();
expect(buffer.toString(), '0/100,100/100,');
});
});
Expand Down
2 changes: 1 addition & 1 deletion lib/web_ui/test/engine/profiler_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ class BenchmarkDatapoint {
int get hashCode => hashValues(name, value);

@override
operator ==(dynamic other) {
bool operator ==(dynamic other) {
if (identical(this, other)) {
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

// @dart = 2.6
import 'dart:html' as html;
import 'dart:js_util' as js_util;

import 'package:ui/ui.dart' hide TextStyle;
import 'package:ui/src/engine.dart' as engine;
Expand Down
11 changes: 0 additions & 11 deletions lib/web_ui/test/golden_tests/engine/path_metrics_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

// @dart = 2.6
import 'dart:html' as html;
import 'dart:typed_data';

import 'package:ui/ui.dart' hide TextStyle;
import 'package:ui/src/engine.dart';
Expand Down Expand Up @@ -63,8 +62,6 @@ void main() async {

test('Should calculate tangent on cubic curve', () async {
final Path path = Path();
double p0x = 150;
double p0y = 20;
double p1x = 240;
double p1y = 120;
double p2x = 320;
Expand Down Expand Up @@ -112,8 +109,6 @@ void main() async {
final Path path = Path();
path.moveTo(50, 130);
path.lineTo(150, 20);
double p0x = 150;
double p0y = 20;
double p1x = 240;
double p1y = 120;
double p2x = 320;
Expand All @@ -122,8 +117,6 @@ void main() async {

rc.drawPath(path, paint);

final Float32List buffer = Float32List(6);
List<double> points = [p0x, p0y, p1x, p1y, p2x, p2y];
double t0 = 0.2;
double t1 = 0.7;

Expand Down Expand Up @@ -168,8 +161,6 @@ void main() async {
final Path path = Path();
path.moveTo(50, 130);
path.lineTo(150, 20);
double p0x = 150;
double p0y = 20;
double p1x = 40;
double p1y = 120;
double p2x = 300;
Expand All @@ -180,8 +171,6 @@ void main() async {

rc.drawPath(path, paint);

final Float32List buffer = Float32List(6);
List<double> points = [p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y];
double t0 = 0.2;
double t1 = 0.7;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// found in the LICENSE file.

// @dart = 2.6
import 'package:test/test.dart';
import 'package:ui/ui.dart';
import 'package:ui/src/engine.dart';

Expand Down
1 change: 1 addition & 0 deletions lib/web_ui/test/text/measurement_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1154,5 +1154,6 @@ EngineLineMetrics line(
width: width,
lineNumber: lineNumber,
left: left,
endIndexWithoutNewlines: -1,
);
}