Skip to content

Commit 699e1bd

Browse files
authored
Migrate to dart3 (#1)
* Use Dart3 * Exec `dart pub upgrade` * Migrate analysis_options * Exec `dart pug upgrade` * Fix analysis warns * Update workflows * Add asdf configuration for Dart version management * Remove deprecated analysis options for Dart 3.3 * Migrate workflows from dartanalyzer to dart analyze * Update Dart CLI commands to latest syntax
1 parent a47c00d commit 699e1bd

File tree

9 files changed

+158
-147
lines changed

9 files changed

+158
-147
lines changed

Diff for: .github/workflows/dart.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@ jobs:
1010
format-and-analyze-and-test:
1111
runs-on: ubuntu-latest
1212
container:
13-
image: google/dart:latest
13+
image: dart:3.5.4
1414

1515
steps:
16-
- uses: actions/checkout@v2
16+
- uses: actions/checkout@v4
1717

1818
- name: install dependencies
19-
run: pub get
19+
run: dart pub get
2020

2121
- name: dartfmt
2222
run: dart format . --output=none --set-exit-if-changed
2323

2424
- name: analyzer
25-
run: dartanalyzer --fatal-warnings --fatal-infos .
25+
run: dart analyze --fatal-warnings --fatal-infos .
2626

2727
- name: test
28-
run: pub run test ./
28+
run: dart test ./

Diff for: .tool-versions

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dart 3.5.4

Diff for: analysis_options.yaml

+4-12
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
# For lint rules and documentation, see http://dart-lang.github.io/linter/lints.
22

33
analyzer:
4-
strong-mode:
5-
implicit-casts: false
6-
implicit-dynamic: false
7-
# exclude:
8-
# - path/to/excluded/files/**
4+
language:
5+
strict-casts: true
6+
strict-raw-types: true
97

108
# https://dart-lang.github.io/linter/lints/options/options.html
119
linter:
1210
rules:
1311
- always_declare_return_types
1412
- always_put_control_body_on_new_line
1513
- always_put_required_named_parameters_first
16-
- always_require_non_null_named_parameters
1714
- annotate_overrides
1815
- avoid_annotating_with_dynamic
1916
- avoid_bool_literals_in_conditional_expressions
@@ -38,8 +35,6 @@ linter:
3835
- avoid_relative_lib_imports
3936
- avoid_renaming_method_parameters
4037
- avoid_return_types_on_setters
41-
- avoid_returning_null
42-
- avoid_returning_null_for_future
4338
- avoid_returning_null_for_void
4439
- avoid_returning_this
4540
- avoid_setters_without_getters
@@ -75,14 +70,12 @@ linter:
7570
- file_names
7671
- hash_and_equals
7772
- implementation_imports
78-
- invariant_booleans
79-
- iterable_contains_unrelated_type
73+
- collection_methods_unrelated_type
8074
- join_return_with_assignment
8175
- leading_newlines_in_multiline_strings
8276
- library_names
8377
- library_prefixes
8478
- lines_longer_than_80_chars
85-
- list_remove_unrelated_type
8679
- literal_only_boolean_expressions
8780
- missing_whitespace_between_adjacent_strings
8881
- no_adjacent_strings_in_list
@@ -111,7 +104,6 @@ linter:
111104
- prefer_const_literals_to_create_immutables
112105
- prefer_constructors_over_static_methods
113106
- prefer_contains
114-
- prefer_equal_for_default_values
115107
- prefer_expression_function_bodies
116108
- prefer_final_fields
117109
- prefer_final_in_for_each

Diff for: lib/monkey/evaluator.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ object.Object _evalIntegerInfixExpr(
185185
} else if (ope == ast.Operator.gt) {
186186
return (left.value > right.value).toBooleanObject();
187187
} else if (ope == ast.Operator.equal) {
188-
return (left.monkeyEqual(right)).toBooleanObject();
188+
return left.monkeyEqual(right).toBooleanObject();
189189
} else if (ope == ast.Operator.notEqual) {
190190
return (!left.monkeyEqual(right)).toBooleanObject();
191191
} else {
@@ -439,7 +439,7 @@ Environment _extendMacroEnv(object.Macro macro, List<object.Quote> args) {
439439
}
440440

441441
List<object.Quote> _quoteArgs(ast.Call call) =>
442-
call.args.map((arg) => object.Quote(arg)).toList();
442+
call.args.map(object.Quote.new).toList();
443443

444444
void defineMacros(ast.Program program, Environment env) {
445445
program.statements

Diff for: lib/monkey/evaluator/builtin.dart

+2
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ extension BuiltinFunction on object.Builtin {
115115
return _builtinPush;
116116
case 'puts':
117117
return _builtinPuts;
118+
default:
119+
return null;
118120
}
119121
}
120122
}

Diff for: lib/monkey/evaluator/object.dart

+2-4
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,8 @@ class Hash extends Object {
114114
return false;
115115
}
116116

117-
if (pair.value is MonkeyEq && otherValue is MonkeyEq) {
118-
if (!pair.value.monkeyEqual(otherValue)) {
119-
return false;
120-
}
117+
if (!pair.value.monkeyEqual(otherValue)) {
118+
return false;
121119
}
122120
}
123121

0 commit comments

Comments
 (0)