From ee7ba8bcfd20229ca005197a4b9a7cfa77017302 Mon Sep 17 00:00:00 2001 From: 7H3LaughingMan <7H3LaughingMan@proton.me> Date: Sat, 26 Apr 2025 20:04:27 -0500 Subject: [PATCH] Avoid using dynamic objects, not compatible with AOT/trimming --- .../Serialization/Tmx/TmxReaderBase.ObjectLayer.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/DotTiled/Serialization/Tmx/TmxReaderBase.ObjectLayer.cs b/src/DotTiled/Serialization/Tmx/TmxReaderBase.ObjectLayer.cs index a53cee6..e7f74f1 100644 --- a/src/DotTiled/Serialization/Tmx/TmxReaderBase.ObjectLayer.cs +++ b/src/DotTiled/Serialization/Tmx/TmxReaderBase.ObjectLayer.cs @@ -165,7 +165,17 @@ public abstract partial class TmxReaderBase return obj; } - return OverrideObject((dynamic)obj, (dynamic)foundObject); + return (obj, foundObject) switch + { + (TileObject tile, TileObject foundTile) => OverrideObject(tile, foundTile), + (RectangleObject rectangle, RectangleObject foundRectangle) => OverrideObject(rectangle, foundRectangle), + (PolygonObject polygon, PolygonObject foundPolygon) => OverrideObject(polygon, foundPolygon), + (PolylineObject polyline, PolylineObject foundPolyline) => OverrideObject(polyline, foundPolyline), + (EllipseObject ellipse, EllipseObject foundEllipse) => OverrideObject(ellipse, foundEllipse), + (TextObject text, TextObject foundText) => OverrideObject(text, foundText), + (PointObject point, PointObject foundPoint) => OverrideObject(point, foundPoint), + _ => obj + }; } internal EllipseObject ReadEllipseObject()