Migrate matrix* dynamic operators to switch expressions
diff --git a/lib/src/vector_math/matrix2.dart b/lib/src/vector_math/matrix2.dart
index cd102bd..0ed5119 100644
--- a/lib/src/vector_math/matrix2.dart
+++ b/lib/src/vector_math/matrix2.dart
@@ -218,19 +218,12 @@
@pragma('wasm:prefer-inline')
@pragma('vm:prefer-inline')
@pragma('dart2js:prefer-inline')
- dynamic operator *(dynamic arg) {
- final Object result;
- if (arg is double) {
- result = scaled(arg);
- } else if (arg is Vector2) {
- result = transformed(arg);
- } else if (arg is Matrix2) {
- result = multiplied(arg);
- } else {
- throw ArgumentError(arg);
- }
- return result;
- }
+ dynamic operator *(dynamic arg) => switch (arg) {
+ double() => scaled(arg),
+ Vector2() => transformed(arg),
+ Matrix2() => multiplied(arg),
+ _ => throw ArgumentError(arg)
+ };
/// Returns new matrix after component wise this + [arg]
Matrix2 operator +(Matrix2 arg) => clone()..add(arg);
diff --git a/lib/src/vector_math/matrix3.dart b/lib/src/vector_math/matrix3.dart
index c61208b..1b261d8 100644
--- a/lib/src/vector_math/matrix3.dart
+++ b/lib/src/vector_math/matrix3.dart
@@ -329,19 +329,12 @@
@pragma('wasm:prefer-inline')
@pragma('vm:prefer-inline')
@pragma('dart2js:prefer-inline')
- dynamic operator *(dynamic arg) {
- final Object result;
- if (arg is double) {
- result = scaled(arg);
- } else if (arg is Vector3) {
- result = transformed(arg);
- } else if (arg is Matrix3) {
- result = multiplied(arg);
- } else {
- throw ArgumentError(arg);
- }
- return result;
- }
+ dynamic operator *(dynamic arg) => switch (arg) {
+ double() => scaled(arg),
+ Vector3() => transformed(arg),
+ Matrix3() => multiplied(arg),
+ _ => throw ArgumentError(arg)
+ };
/// Returns new matrix after component wise this + [arg]
Matrix3 operator +(Matrix3 arg) => clone()..add(arg);
diff --git a/lib/src/vector_math/matrix4.dart b/lib/src/vector_math/matrix4.dart
index 8c82523..f2d35fc 100644
--- a/lib/src/vector_math/matrix4.dart
+++ b/lib/src/vector_math/matrix4.dart
@@ -647,21 +647,13 @@
@pragma('wasm:prefer-inline')
@pragma('vm:prefer-inline')
@pragma('dart2js:prefer-inline')
- dynamic operator *(dynamic arg) {
- final Object result;
- if (arg is double) {
- result = scaledByDouble(arg, arg, arg, 1.0);
- } else if (arg is Vector4) {
- result = transformed(arg);
- } else if (arg is Vector3) {
- result = transformed3(arg);
- } else if (arg is Matrix4) {
- result = multiplied(arg);
- } else {
- throw ArgumentError(arg);
- }
- return result;
- }
+ dynamic operator *(dynamic arg) => switch (arg) {
+ double() => scaledByDouble(arg, arg, arg, 1.0),
+ Vector4() => transformed(arg),
+ Vector3() => transformed3(arg),
+ Matrix4() => multiplied(arg),
+ _ => throw ArgumentError(arg)
+ };
/// Returns new matrix after component wise this + [arg]
Matrix4 operator +(Matrix4 arg) => clone()..add(arg);
diff --git a/lib/src/vector_math_64/matrix2.dart b/lib/src/vector_math_64/matrix2.dart
index a35be28..f842484 100644
--- a/lib/src/vector_math_64/matrix2.dart
+++ b/lib/src/vector_math_64/matrix2.dart
@@ -218,19 +218,12 @@
@pragma('wasm:prefer-inline')
@pragma('vm:prefer-inline')
@pragma('dart2js:prefer-inline')
- dynamic operator *(dynamic arg) {
- final Object result;
- if (arg is double) {
- result = scaled(arg);
- } else if (arg is Vector2) {
- result = transformed(arg);
- } else if (arg is Matrix2) {
- result = multiplied(arg);
- } else {
- throw ArgumentError(arg);
- }
- return result;
- }
+ dynamic operator *(dynamic arg) => switch (arg) {
+ double() => scaled(arg),
+ Vector2() => transformed(arg),
+ Matrix2() => multiplied(arg),
+ _ => throw ArgumentError(arg)
+ };
/// Returns new matrix after component wise this + [arg]
Matrix2 operator +(Matrix2 arg) => clone()..add(arg);
diff --git a/lib/src/vector_math_64/matrix3.dart b/lib/src/vector_math_64/matrix3.dart
index e5638f9..3b17936 100644
--- a/lib/src/vector_math_64/matrix3.dart
+++ b/lib/src/vector_math_64/matrix3.dart
@@ -329,19 +329,12 @@
@pragma('wasm:prefer-inline')
@pragma('vm:prefer-inline')
@pragma('dart2js:prefer-inline')
- dynamic operator *(dynamic arg) {
- final Object result;
- if (arg is double) {
- result = scaled(arg);
- } else if (arg is Vector3) {
- result = transformed(arg);
- } else if (arg is Matrix3) {
- result = multiplied(arg);
- } else {
- throw ArgumentError(arg);
- }
- return result;
- }
+ dynamic operator *(dynamic arg) => switch (arg) {
+ double() => scaled(arg),
+ Vector3() => transformed(arg),
+ Matrix3() => multiplied(arg),
+ _ => throw ArgumentError(arg)
+ };
/// Returns new matrix after component wise this + [arg]
Matrix3 operator +(Matrix3 arg) => clone()..add(arg);
diff --git a/lib/src/vector_math_64/matrix4.dart b/lib/src/vector_math_64/matrix4.dart
index f1ed9f0..13f280d 100644
--- a/lib/src/vector_math_64/matrix4.dart
+++ b/lib/src/vector_math_64/matrix4.dart
@@ -647,21 +647,13 @@
@pragma('wasm:prefer-inline')
@pragma('vm:prefer-inline')
@pragma('dart2js:prefer-inline')
- dynamic operator *(dynamic arg) {
- final Object result;
- if (arg is double) {
- result = scaledByDouble(arg, arg, arg, 1.0);
- } else if (arg is Vector4) {
- result = transformed(arg);
- } else if (arg is Vector3) {
- result = transformed3(arg);
- } else if (arg is Matrix4) {
- result = multiplied(arg);
- } else {
- throw ArgumentError(arg);
- }
- return result;
- }
+ dynamic operator *(dynamic arg) => switch (arg) {
+ double() => scaledByDouble(arg, arg, arg, 1.0),
+ Vector4() => transformed(arg),
+ Vector3() => transformed3(arg),
+ Matrix4() => multiplied(arg),
+ _ => throw ArgumentError(arg)
+ };
/// Returns new matrix after component wise this + [arg]
Matrix4 operator +(Matrix4 arg) => clone()..add(arg);