diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3bc5b71..9a701d5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,5 @@
+## 1.3.1-dev
+
 ## 1.3.0
 
 * Stable release for null safety.
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 4a774a7..5fcbac8 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -1,11 +1,8 @@
-include: package:pedantic/analysis_options.1.9.0.yaml
+include: package:lints/recommended.yaml
 
 analyzer:
   strong-mode:
     implicit-casts: false
-  errors:
-    annotate_overrides: ignore
-    prefer_single_quotes: ignore
 
 linter:
   rules:
diff --git a/lib/src/typed_buffer.dart b/lib/src/typed_buffer.dart
index 37933f9..7d72a04 100644
--- a/lib/src/typed_buffer.dart
+++ b/lib/src/typed_buffer.dart
@@ -68,8 +68,8 @@
   // by setting the length in increments of one. We want to grow by doubling
   // capacity in most cases.
   @override
-  void add(E value) {
-    _add(value);
+  void add(E element) {
+    _add(element);
   }
 
   /// Appends all objects of [values] to the end of this buffer.
@@ -267,9 +267,9 @@
   }
 
   @override
-  void setRange(int start, int end, Iterable<E> source, [int skipCount = 0]) {
+  void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) {
     if (end > _length) throw RangeError.range(end, 0, _length);
-    _setRange(start, end, source, skipCount);
+    _setRange(start, end, iterable, skipCount);
   }
 
   /// Like [setRange], but with no bounds checking.
diff --git a/lib/src/typed_queue.dart b/lib/src/typed_queue.dart
index a7ee91a..0100fd0 100644
--- a/lib/src/typed_queue.dart
+++ b/lib/src/typed_queue.dart
@@ -28,20 +28,23 @@
 
   // Iterable interface.
 
+  @override
   int get length => (_tail - _head) & (_table.length - 1);
 
+  @override
   List<E> toList({bool growable = true}) {
     var list = growable ? _createBuffer(length) : _createList(length);
     _writeToList(list);
     return list;
   }
 
+  @override
   QueueList<T> cast<T>() {
     if (this is QueueList<T>) return this as QueueList<T>;
     throw UnsupportedError("$this cannot be cast to the desired type.");
   }
 
-  @deprecated
+  @Deprecated('Use `cast` instead')
   QueueList<T> retype<T>() => cast<T>();
 
   // Queue interface.
@@ -65,6 +68,7 @@
     return result;
   }
 
+  @override
   E removeLast() {
     if (_head == _tail) throw StateError("No element");
     _tail = (_tail - 1) & (_table.length - 1);
@@ -73,8 +77,10 @@
 
   // List interface.
 
+  @override
   void add(E value) => addLast(value);
 
+  @override
   set length(int value) {
     RangeError.checkNotNegative(value, "length");
 
@@ -93,16 +99,19 @@
     }
   }
 
+  @override
   E operator [](int index) {
     RangeError.checkValidIndex(index, this, null, length);
     return _table[(_head + index) & (_table.length - 1)];
   }
 
+  @override
   void operator []=(int index, E value) {
     RangeError.checkValidIndex(index, this);
     _table[(_head + index) & (_table.length - 1)] = value;
   }
 
+  @override
   void removeRange(int start, int end) {
     var length = this.length;
     RangeError.checkValidRange(start, end, length);
@@ -132,6 +141,7 @@
     }
   }
 
+  @override
   void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) {
     RangeError.checkValidRange(start, end, length);
     if (start == end) return;
@@ -231,6 +241,7 @@
     }
   }
 
+  @override
   void fillRange(int start, int end, [E? value]) {
     var startInTable = (_head + start) & (_table.length - 1);
     var endInTable = (_head + end) & (_table.length - 1);
@@ -242,6 +253,7 @@
     }
   }
 
+  @override
   L sublist(int start, [int? end]) {
     var length = this.length;
     var nonNullEnd = RangeError.checkValidRange(start, end, length);
@@ -327,6 +339,7 @@
 abstract class _IntQueue<L extends List<int>> extends _TypedQueue<int, L> {
   _IntQueue(L queue) : super(queue);
 
+  @override
   int get _defaultValue => 0;
 }
 
@@ -334,6 +347,7 @@
     extends _TypedQueue<double, L> {
   _FloatQueue(L queue) : super(queue);
 
+  @override
   double get _defaultValue => 0.0;
 }
 
@@ -354,7 +368,9 @@
   factory Uint8Queue.fromList(List<int> elements) =>
       Uint8Queue(elements.length)..addAll(elements);
 
+  @override
   Uint8List _createList(int size) => Uint8List(size);
+  @override
   Uint8Buffer _createBuffer(int size) => Uint8Buffer(size);
 }
 
@@ -376,7 +392,9 @@
   factory Int8Queue.fromList(List<int> elements) =>
       Int8Queue(elements.length)..addAll(elements);
 
+  @override
   Int8List _createList(int size) => Int8List(size);
+  @override
   Int8Buffer _createBuffer(int size) => Int8Buffer(size);
 }
 
@@ -400,7 +418,9 @@
   factory Uint8ClampedQueue.fromList(List<int> elements) =>
       Uint8ClampedQueue(elements.length)..addAll(elements);
 
+  @override
   Uint8ClampedList _createList(int size) => Uint8ClampedList(size);
+  @override
   Uint8ClampedBuffer _createBuffer(int size) => Uint8ClampedBuffer(size);
 }
 
@@ -421,7 +441,9 @@
   factory Uint16Queue.fromList(List<int> elements) =>
       Uint16Queue(elements.length)..addAll(elements);
 
+  @override
   Uint16List _createList(int size) => Uint16List(size);
+  @override
   Uint16Buffer _createBuffer(int size) => Uint16Buffer(size);
 }
 
@@ -443,7 +465,9 @@
   factory Int16Queue.fromList(List<int> elements) =>
       Int16Queue(elements.length)..addAll(elements);
 
+  @override
   Int16List _createList(int size) => Int16List(size);
+  @override
   Int16Buffer _createBuffer(int size) => Int16Buffer(size);
 }
 
@@ -464,7 +488,9 @@
   factory Uint32Queue.fromList(List<int> elements) =>
       Uint32Queue(elements.length)..addAll(elements);
 
+  @override
   Uint32List _createList(int size) => Uint32List(size);
+  @override
   Uint32Buffer _createBuffer(int size) => Uint32Buffer(size);
 }
 
@@ -486,7 +512,9 @@
   factory Int32Queue.fromList(List<int> elements) =>
       Int32Queue(elements.length)..addAll(elements);
 
+  @override
   Int32List _createList(int size) => Int32List(size);
+  @override
   Int32Buffer _createBuffer(int size) => Int32Buffer(size);
 }
 
@@ -508,7 +536,9 @@
   factory Uint64Queue.fromList(List<int> elements) =>
       Uint64Queue(elements.length)..addAll(elements);
 
+  @override
   Uint64List _createList(int size) => Uint64List(size);
+  @override
   Uint64Buffer _createBuffer(int size) => Uint64Buffer(size);
 }
 
@@ -530,7 +560,9 @@
   factory Int64Queue.fromList(List<int> elements) =>
       Int64Queue(elements.length)..addAll(elements);
 
+  @override
   Int64List _createList(int size) => Int64List(size);
+  @override
   Int64Buffer _createBuffer(int size) => Int64Buffer(size);
 }
 
@@ -553,7 +585,9 @@
   factory Float32Queue.fromList(List<double> elements) =>
       Float32Queue(elements.length)..addAll(elements);
 
+  @override
   Float32List _createList(int size) => Float32List(size);
+  @override
   Float32Buffer _createBuffer(int size) => Float32Buffer(size);
 }
 
@@ -573,7 +607,9 @@
   factory Float64Queue.fromList(List<double> elements) =>
       Float64Queue(elements.length)..addAll(elements);
 
+  @override
   Float64List _createList(int size) => Float64List(size);
+  @override
   Float64Buffer _createBuffer(int size) => Float64Buffer(size);
 }
 
@@ -594,8 +630,11 @@
   factory Int32x4Queue.fromList(List<Int32x4> elements) =>
       Int32x4Queue(elements.length)..addAll(elements);
 
+  @override
   Int32x4List _createList(int size) => Int32x4List(size);
+  @override
   Int32x4Buffer _createBuffer(int size) => Int32x4Buffer(size);
+  @override
   Int32x4 get _defaultValue => _zero;
 }
 
@@ -614,8 +653,11 @@
   factory Float32x4Queue.fromList(List<Float32x4> elements) =>
       Float32x4Queue(elements.length)..addAll(elements);
 
+  @override
   Float32x4List _createList(int size) => Float32x4List(size);
+  @override
   Float32x4Buffer _createBuffer(int size) => Float32x4Buffer(size);
+  @override
   Float32x4 get _defaultValue => Float32x4.zero();
 }
 
diff --git a/pubspec.yaml b/pubspec.yaml
index 0501c93..9e5942d 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,16 +1,16 @@
 name: typed_data
-version: 1.3.0
+version: 1.3.1-dev
 
 description: >-
   Utility functions and classes related to the dart:typed_data library.
 homepage: https://github.com/dart-lang/typed_data
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.12.0 <3.0.0"
 
 dependencies:
   collection: ^1.15.0
 
 dev_dependencies:
-  pedantic: ^1.10.0-nullsafety
-  test: ^1.16.0-nullsafety
+  lints: ^1.0.0
+  test: ^1.16.0
diff --git a/test/typed_buffers_test.dart b/test/typed_buffers_test.dart
index 9452ad3..c0a0001 100644
--- a/test/typed_buffers_test.dart
+++ b/test/typed_buffers_test.dart
@@ -552,9 +552,11 @@
 
   MatchesInt32x4(this.result);
 
+  @override
   Description describe(Description description) =>
       description.add('Int32x4.==');
 
+  @override
   bool matches(item, Map matchState) =>
       item is Int32x4 &&
       result.x == item.x &&
