diff --git a/gm/aaclip.cpp b/gm/aaclip.cpp
index 4b69194..e6a6c18 100644
--- a/gm/aaclip.cpp
+++ b/gm/aaclip.cpp
@@ -280,6 +280,6 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM(return new ClipCubicGM;)
diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp
index f5c05a2..c373841 100644
--- a/gm/aaxfermodes.cpp
+++ b/gm/aaxfermodes.cpp
@@ -280,6 +280,6 @@
     SkPath    fOval;
     SkPath    fConcave;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new AAXfermodesGM; )
diff --git a/gm/addarc.cpp b/gm/addarc.cpp
index b04bf21..f198222 100644
--- a/gm/addarc.cpp
+++ b/gm/addarc.cpp
@@ -69,7 +69,7 @@
 
 private:
     SkScalar fRotate;
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new AddArcGM; )
 
@@ -154,7 +154,7 @@
 private:
     SkScalar fRotate;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new StrokeCircleGM; )
 
@@ -207,7 +207,7 @@
 private:
     SkScalar fRotate;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new FillCircleGM; )
 
diff --git a/gm/alphagradients.cpp b/gm/alphagradients.cpp
index b50c21c..52056f2 100644
--- a/gm/alphagradients.cpp
+++ b/gm/alphagradients.cpp
@@ -81,7 +81,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new AlphaGradientsGM;)
diff --git a/gm/analytic_gradients.cpp b/gm/analytic_gradients.cpp
index a96cbda..b2eac27 100644
--- a/gm/analytic_gradients.cpp
+++ b/gm/analytic_gradients.cpp
@@ -184,7 +184,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new AnalyticGradientShaderGM;)
diff --git a/gm/androidblendmodes.cpp b/gm/androidblendmodes.cpp
index 77003fb..0b7172b 100644
--- a/gm/androidblendmodes.cpp
+++ b/gm/androidblendmodes.cpp
@@ -127,7 +127,7 @@
     SkBitmap fCompositeSrc;
     SkBitmap fCompositeDst;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/animatedimageblurs.cpp b/gm/animatedimageblurs.cpp
index 90eb1d4..30cfbd5 100644
--- a/gm/animatedimageblurs.cpp
+++ b/gm/animatedimageblurs.cpp
@@ -138,7 +138,7 @@
     SkRandom fRand;
     SkScalar fLastTime;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/anisotropic.cpp b/gm/anisotropic.cpp
index 2304e51..5699fe6 100644
--- a/gm/anisotropic.cpp
+++ b/gm/anisotropic.cpp
@@ -115,7 +115,7 @@
     SkBitmap         fBM;
     SkFilterQuality  fFilterQuality;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/arcofzorro.cpp b/gm/arcofzorro.cpp
index 1eccca3..82e3723 100644
--- a/gm/arcofzorro.cpp
+++ b/gm/arcofzorro.cpp
@@ -81,7 +81,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/arithmode.cpp b/gm/arithmode.cpp
index f835eb7..688c4a5 100644
--- a/gm/arithmode.cpp
+++ b/gm/arithmode.cpp
@@ -164,7 +164,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/badpaint.cpp b/gm/badpaint.cpp
index da7dbd5..399c3bd 100644
--- a/gm/badpaint.cpp
+++ b/gm/badpaint.cpp
@@ -56,7 +56,7 @@
 private:
     SkTArray<SkPaint> fPaints;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 /////////////////////////////////////////////////////////////////////////////////////
diff --git a/gm/bc1_transparency.cpp b/gm/bc1_transparency.cpp
index a841433..5ff654f 100644
--- a/gm/bc1_transparency.cpp
+++ b/gm/bc1_transparency.cpp
@@ -210,7 +210,7 @@
     sk_sp<SkImage> fRGBImage;
     sk_sp<SkImage> fRGBAImage;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp
index 4b7c839..4f1baa0 100644
--- a/gm/beziereffects.cpp
+++ b/gm/beziereffects.cpp
@@ -135,7 +135,7 @@
     GrProcessorSet       fProcessorSet;
     GrProgramInfo*       fProgramInfo = nullptr;
 
-    typedef GrMeshDrawOp INHERITED;
+    using INHERITED = GrMeshDrawOp;
 };
 
 /**
@@ -199,7 +199,7 @@
     static constexpr int kVertsPerCubic = 4;
     static constexpr int kIndicesPerCubic = 6;
 
-    typedef BezierTestOp INHERITED;
+    using INHERITED = BezierTestOp;
 };
 
 
@@ -342,7 +342,7 @@
         return conicCnt;
     }
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
@@ -402,7 +402,7 @@
     static constexpr int kVertsPerCubic = 4;
     static constexpr int kIndicesPerCubic = 6;
 
-    typedef BezierTestOp INHERITED;
+    using INHERITED = BezierTestOp;
 };
 
 /**
@@ -497,7 +497,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new BezierConicEffects;)
diff --git a/gm/beziers.cpp b/gm/beziers.cpp
index 5cc52de..7819d0f 100644
--- a/gm/beziers.cpp
+++ b/gm/beziers.cpp
@@ -95,7 +95,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM( return new BeziersGM; )
diff --git a/gm/bigblurs.cpp b/gm/bigblurs.cpp
index 09e94dc..e768850 100644
--- a/gm/bigblurs.cpp
+++ b/gm/bigblurs.cpp
@@ -116,7 +116,7 @@
     static constexpr int kWidth = 5 * kCloseUpSize;
     static constexpr int kHeight = 2 * (kLastEnum_SkBlurStyle + 1) * kCloseUpSize;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new BigBlursGM;)
diff --git a/gm/bigrrectaaeffect.cpp b/gm/bigrrectaaeffect.cpp
index 2b106d7..492836f 100644
--- a/gm/bigrrectaaeffect.cpp
+++ b/gm/bigrrectaaeffect.cpp
@@ -126,7 +126,7 @@
     int fTestOffsetX;
     int fTestOffsetY;
     const char* fName;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/bigtext.cpp b/gm/bigtext.cpp
index e491d10..b0db001 100644
--- a/gm/bigtext.cpp
+++ b/gm/bigtext.cpp
@@ -57,7 +57,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new BigTextGM;)
diff --git a/gm/bigtileimagefilter.cpp b/gm/bigtileimagefilter.cpp
index 918fe9f..b90631f 100644
--- a/gm/bigtileimagefilter.cpp
+++ b/gm/bigtileimagefilter.cpp
@@ -112,7 +112,7 @@
     sk_sp<SkImage> fRedImage;
     sk_sp<SkImage> fGreenImage;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/bitmapfilters.cpp b/gm/bitmapfilters.cpp
index 73b5887..8e88723 100644
--- a/gm/bitmapfilters.cpp
+++ b/gm/bitmapfilters.cpp
@@ -112,7 +112,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new FilterGM; )
 
@@ -159,6 +159,6 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new TestExtractAlphaGM; )
diff --git a/gm/bitmapimage.cpp b/gm/bitmapimage.cpp
index 52a16dc..9f8d76d 100644
--- a/gm/bitmapimage.cpp
+++ b/gm/bitmapimage.cpp
@@ -79,7 +79,7 @@
 private:
     static constexpr int kSize = 512;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/bitmappremul.cpp b/gm/bitmappremul.cpp
index bd6ff87..3cd9c9a 100644
--- a/gm/bitmappremul.cpp
+++ b/gm/bitmappremul.cpp
@@ -111,7 +111,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new BitmapPremulGM; )
diff --git a/gm/bitmaprect.cpp b/gm/bitmaprect.cpp
index 368b720..e840b81 100644
--- a/gm/bitmaprect.cpp
+++ b/gm/bitmaprect.cpp
@@ -90,7 +90,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
@@ -153,7 +153,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
@@ -227,7 +227,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 class BitmapRectRounding : public skiagm::GM {
@@ -270,7 +270,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new BitmapRectRounding; )
 
diff --git a/gm/bitmapshader.cpp b/gm/bitmapshader.cpp
index c0149f1..27b5cc1 100644
--- a/gm/bitmapshader.cpp
+++ b/gm/bitmapshader.cpp
@@ -112,7 +112,7 @@
     SkBitmap fBitmap;
     SkBitmap fMask;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_SIMPLE_GM(hugebitmapshader, canvas, 100, 100) {
diff --git a/gm/bleed.cpp b/gm/bleed.cpp
index 4eeae73..a94db84 100644
--- a/gm/bleed.cpp
+++ b/gm/bleed.cpp
@@ -315,7 +315,7 @@
     SkIRect fSmallSrcRect;
     SkCanvas::SrcRectConstraint fConstraint;
     bool fBatch = false;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new SrcRectConstraintGM("strict_constraint_no_red_allowed",
diff --git a/gm/blurcircles.cpp b/gm/blurcircles.cpp
index a8bb52d..18c2461 100644
--- a/gm/blurcircles.cpp
+++ b/gm/blurcircles.cpp
@@ -67,7 +67,7 @@
 
     sk_sp<SkMaskFilter> fBlurFilters[kNumBlurs];
 
-    typedef         skiagm::GM INHERITED;
+    using INHERITED =         skiagm::GM;
 };
 
 DEF_GM(return new BlurCirclesGM();)
diff --git a/gm/blurcircles2.cpp b/gm/blurcircles2.cpp
index c30d363..c399d56 100644
--- a/gm/blurcircles2.cpp
+++ b/gm/blurcircles2.cpp
@@ -164,7 +164,7 @@
 
     SkRandom    fRandom;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new BlurCircles2GM();)
diff --git a/gm/blurignorexform.cpp b/gm/blurignorexform.cpp
index 3e19d27..c8a40c9 100644
--- a/gm/blurignorexform.cpp
+++ b/gm/blurignorexform.cpp
@@ -134,7 +134,7 @@
     DrawType fDrawType;
     sk_sp<SkMaskFilter> fBlurFilters[kNumBlurs];
 
-    typedef         skiagm::GM INHERITED;
+    using INHERITED =         skiagm::GM;
 };
 
 const BlurIgnoreXformGM::BlurFlags BlurIgnoreXformGM::kBlurFlags[] = {
diff --git a/gm/blurquickreject.cpp b/gm/blurquickreject.cpp
index 45b6478..e309be4 100644
--- a/gm/blurquickreject.cpp
+++ b/gm/blurquickreject.cpp
@@ -85,7 +85,7 @@
     static constexpr int kWidth = 300;
     static constexpr int kHeight = 300;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new BlurQuickRejectGM(); )
diff --git a/gm/blurredclippedcircle.cpp b/gm/blurredclippedcircle.cpp
index 9f7c969..c7075b0 100644
--- a/gm/blurredclippedcircle.cpp
+++ b/gm/blurredclippedcircle.cpp
@@ -90,7 +90,7 @@
     static constexpr int kWidth = 1164;
     static constexpr int kHeight = 802;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/bmpfilterqualityrepeat.cpp b/gm/bmpfilterqualityrepeat.cpp
index 47891a6..8630d81 100644
--- a/gm/bmpfilterqualityrepeat.cpp
+++ b/gm/bmpfilterqualityrepeat.cpp
@@ -97,7 +97,7 @@
 
     SkBitmap    fBmp;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/circles.cpp b/gm/circles.cpp
index 644f7ff..13cdd5d 100644
--- a/gm/circles.cpp
+++ b/gm/circles.cpp
@@ -202,7 +202,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
     SkTArray<SkPaint> fPaints;
     SkTArray<SkMatrix> fMatrices;
 };
diff --git a/gm/circularclips.cpp b/gm/circularclips.cpp
index ad61e96..54985c4 100644
--- a/gm/circularclips.cpp
+++ b/gm/circularclips.cpp
@@ -91,7 +91,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/clip_error.cpp b/gm/clip_error.cpp
index 2f87dbb..f496ca1 100644
--- a/gm/clip_error.cpp
+++ b/gm/clip_error.cpp
@@ -82,7 +82,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new ClipErrorGM;)
diff --git a/gm/clip_strokerect.cpp b/gm/clip_strokerect.cpp
index 746ea2f..5ca3093 100644
--- a/gm/clip_strokerect.cpp
+++ b/gm/clip_strokerect.cpp
@@ -68,7 +68,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new ClipStrokeRectGM;)
diff --git a/gm/clippedbitmapshaders.cpp b/gm/clippedbitmapshaders.cpp
index aa22851..fee715a 100644
--- a/gm/clippedbitmapshaders.cpp
+++ b/gm/clippedbitmapshaders.cpp
@@ -116,7 +116,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 }  // namespace
 
diff --git a/gm/clockwise.cpp b/gm/clockwise.cpp
index a61d291..0b1892d 100644
--- a/gm/clockwise.cpp
+++ b/gm/clockwise.cpp
@@ -103,7 +103,7 @@
 
     const bool fReadSkFragCoord;
 
-    typedef GrGeometryProcessor INHERITED;
+    using INHERITED = GrGeometryProcessor;
 };
 
 class GLSLClockwiseTestProcessor : public GrGLSLGeometryProcessor {
@@ -232,7 +232,7 @@
 
     friend class ::GrOpMemoryPool; // for ctor
 
-    typedef GrDrawOp INHERITED;
+    using INHERITED = GrDrawOp;
 };
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/gm/coloremoji.cpp b/gm/coloremoji.cpp
index d5d825f..e195376 100644
--- a/gm/coloremoji.cpp
+++ b/gm/coloremoji.cpp
@@ -191,7 +191,7 @@
         }
     }
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/coloremoji_blendmodes.cpp b/gm/coloremoji_blendmodes.cpp
index 250fbbb..12f0b91 100644
--- a/gm/coloremoji_blendmodes.cpp
+++ b/gm/coloremoji_blendmodes.cpp
@@ -167,7 +167,7 @@
     SkBitmap            fBG;
     sk_sp<SkTypeface>   fColorType;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 }  // namespace
 
diff --git a/gm/colorfilteralpha8.cpp b/gm/colorfilteralpha8.cpp
index 0fe6b5e..2c38143 100644
--- a/gm/colorfilteralpha8.cpp
+++ b/gm/colorfilteralpha8.cpp
@@ -49,6 +49,6 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ColorFilterAlpha8; )
diff --git a/gm/colormatrix.cpp b/gm/colormatrix.cpp
index 8f3f5e2..46a90ab 100644
--- a/gm/colormatrix.cpp
+++ b/gm/colormatrix.cpp
@@ -139,6 +139,6 @@
     sk_sp<SkImage>   fSolidImg;
     sk_sp<SkImage>   fTransparentImg;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ColorMatrixGM; )
diff --git a/gm/complexclip.cpp b/gm/complexclip.cpp
index 5bdec62..4a7e0ec 100644
--- a/gm/complexclip.cpp
+++ b/gm/complexclip.cpp
@@ -194,7 +194,7 @@
     bool fDoSaveLayer;
     bool fInvertDraw;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/complexclip2.cpp b/gm/complexclip2.cpp
index e83933a..9e8b589 100644
--- a/gm/complexclip2.cpp
+++ b/gm/complexclip2.cpp
@@ -209,7 +209,7 @@
     SkScalar fTotalWidth;
     SkScalar fTotalHeight;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/complexclip3.cpp b/gm/complexclip3.cpp
index e08cd1b..ece4b72 100644
--- a/gm/complexclip3.cpp
+++ b/gm/complexclip3.cpp
@@ -129,7 +129,7 @@
 private:
     bool fDoSimpleClipFirst;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/complexclip4.cpp b/gm/complexclip4.cpp
index 6ef34af..93dec8b 100644
--- a/gm/complexclip4.cpp
+++ b/gm/complexclip4.cpp
@@ -127,7 +127,7 @@
     SkIRect fDeviceRestriction;
     bool    fDoAAClip;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/complexclip_blur_tiled.cpp b/gm/complexclip_blur_tiled.cpp
index 330458c..24aaea0 100644
--- a/gm/complexclip_blur_tiled.cpp
+++ b/gm/complexclip_blur_tiled.cpp
@@ -68,7 +68,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/composeshader.cpp b/gm/composeshader.cpp
index b4fdfd2..a935dea 100644
--- a/gm/composeshader.cpp
+++ b/gm/composeshader.cpp
@@ -241,7 +241,7 @@
     sk_sp<SkShader> fAlpha8BitmapShader;
     sk_sp<SkShader> fLinearGradientShader;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new ComposeShaderBitmapGM(false); )
 DEF_GM( return new ComposeShaderBitmapGM(true); )
diff --git a/gm/compositor_quads.cpp b/gm/compositor_quads.cpp
index aabc361..934afba 100644
--- a/gm/compositor_quads.cpp
+++ b/gm/compositor_quads.cpp
@@ -538,7 +538,7 @@
         SkASSERT(fMatrices.count() == fMatrixNames.count());
     }
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 ////////////////////////////////////////////////////////////////////////////////////////////////
@@ -608,7 +608,7 @@
             : fAAOverride(aa)
             , fEnableAAOverride(enableAAOverrde) {}
 
-    typedef ClipTileRenderer INHERITED;
+    using INHERITED = ClipTileRenderer;
 };
 
 // Tests tmp_drawEdgeAAQuad
@@ -635,7 +635,7 @@
 
     SolidColorRenderer(const SkColor4f& color) : fColor(color) {}
 
-    typedef ClipTileRenderer INHERITED;
+    using INHERITED = ClipTileRenderer;
 };
 
 // Tests drawEdgeAAImageSet(), but can batch the entries together in different ways
@@ -885,7 +885,7 @@
         return 1;
     }
 
-    typedef ClipTileRenderer INHERITED;
+    using INHERITED = ClipTileRenderer;
 };
 
 class YUVTextureSetRenderer : public ClipTileRenderer {
@@ -985,7 +985,7 @@
         return 1;
     }
 
-    typedef ClipTileRenderer INHERITED;
+    using INHERITED = ClipTileRenderer;
 };
 
 static SkTArray<sk_sp<ClipTileRenderer>> make_debug_renderers() {
diff --git a/gm/compressed_textures.cpp b/gm/compressed_textures.cpp
index 37720ac..6db0758 100644
--- a/gm/compressed_textures.cpp
+++ b/gm/compressed_textures.cpp
@@ -319,7 +319,7 @@
     sk_sp<SkImage> fOpaqueBC1Image;
     sk_sp<SkImage> fTransparentBC1Image;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/conicpaths.cpp b/gm/conicpaths.cpp
index f68edbd..49be3fc 100644
--- a/gm/conicpaths.cpp
+++ b/gm/conicpaths.cpp
@@ -141,7 +141,7 @@
 private:
     SkTArray<SkPath> fPaths;
     SkPath           fGiantCircle;
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM(return new ConicPathsGM;)
 
diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp
index bf3d6a1..3a0e28b 100644
--- a/gm/constcolorprocessor.cpp
+++ b/gm/constcolorprocessor.cpp
@@ -213,7 +213,7 @@
     static constexpr int            kWidth  = 820;
     static constexpr int            kHeight = 500;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new ColorProcessor{ColorProcessor::TestMode::kConstColor};)
diff --git a/gm/convex_all_line_paths.cpp b/gm/convex_all_line_paths.cpp
index 27f504c..1294325 100644
--- a/gm/convex_all_line_paths.cpp
+++ b/gm/convex_all_line_paths.cpp
@@ -405,7 +405,7 @@
 
     bool fDoStrokeAndFill;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/convexpolyclip.cpp b/gm/convexpolyclip.cpp
index 8d53b50..3e78054 100644
--- a/gm/convexpolyclip.cpp
+++ b/gm/convexpolyclip.cpp
@@ -304,7 +304,7 @@
     ClipList         fClips;
     SkBitmap         fBmp;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new ConvexPolyClip;)
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp
index 9d4c852..635783b 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -202,7 +202,7 @@
     PathList fPaths;
     RectList fRects;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new ConvexPolyEffect;)
diff --git a/gm/croppedrects.cpp b/gm/croppedrects.cpp
index 3a16e27..5e9f0bd 100644
--- a/gm/croppedrects.cpp
+++ b/gm/croppedrects.cpp
@@ -110,7 +110,7 @@
     sk_sp<SkImage> fSrcImage;
     sk_sp<SkShader> fSrcImageShader;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new CroppedRectsGM(); )
diff --git a/gm/cubicpaths.cpp b/gm/cubicpaths.cpp
index 0ca5552..1490a67 100644
--- a/gm/cubicpaths.cpp
+++ b/gm/cubicpaths.cpp
@@ -114,7 +114,7 @@
     SkPath fPath;
     SkPath fFlipped;
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 
diff --git a/gm/dashcircle.cpp b/gm/dashcircle.cpp
index 19a275d..00705ee 100644
--- a/gm/dashcircle.cpp
+++ b/gm/dashcircle.cpp
@@ -114,7 +114,7 @@
 private:
     SkScalar fRotation;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new DashCircleGM; )
diff --git a/gm/dashcubics.cpp b/gm/dashcubics.cpp
index 03bfe90..a6abadf 100644
--- a/gm/dashcubics.cpp
+++ b/gm/dashcubics.cpp
@@ -171,7 +171,7 @@
     SkTArray<SkPath> fPaths;
     SkScalar         fOffset = 0;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM(return new TrimGM;)
 
diff --git a/gm/dftext.cpp b/gm/dftext.cpp
index 559c4f6..a1f6c84 100644
--- a/gm/dftext.cpp
+++ b/gm/dftext.cpp
@@ -242,7 +242,7 @@
     sk_sp<SkTypeface> fEmojiTypeface;
     const char* fEmojiText;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new DFTextGM;)
diff --git a/gm/dftext_blob_persp.cpp b/gm/dftext_blob_persp.cpp
index 271e89d..9e50628 100644
--- a/gm/dftext_blob_persp.cpp
+++ b/gm/dftext_blob_persp.cpp
@@ -144,7 +144,7 @@
     }
 
     SkTArray<sk_sp<SkTextBlob>> fBlobs;
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new DFTextBlobPerspGM;)
diff --git a/gm/discard.cpp b/gm/discard.cpp
index b092a59..f39d289 100644
--- a/gm/discard.cpp
+++ b/gm/discard.cpp
@@ -92,7 +92,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/displacement.cpp b/gm/displacement.cpp
index 51ab5a3..33d902c 100644
--- a/gm/displacement.cpp
+++ b/gm/displacement.cpp
@@ -165,7 +165,7 @@
     SkBitmap fBitmap;
     sk_sp<SkImage> fCheckerboard, fSmall, fLarge, fLargeW, fLargeH;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/drawatlas.cpp b/gm/drawatlas.cpp
index 2ea54bb..51b192a 100644
--- a/gm/drawatlas.cpp
+++ b/gm/drawatlas.cpp
@@ -122,7 +122,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new DrawAtlasGM; )
 
diff --git a/gm/drawatlascolor.cpp b/gm/drawatlascolor.cpp
index 096620d..35d6ac1 100644
--- a/gm/drawatlascolor.cpp
+++ b/gm/drawatlascolor.cpp
@@ -171,6 +171,6 @@
     static constexpr int kPad = 2;
     static constexpr int kTextPad = 8;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new DrawAtlasColorsGM; )
diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp
index 7eb4fe9..0bda495 100644
--- a/gm/drawbitmaprect.cpp
+++ b/gm/drawbitmaprect.cpp
@@ -248,7 +248,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM( return new DrawBitmapRectGM(bitmapproc      , nullptr); )
diff --git a/gm/drawminibitmaprect.cpp b/gm/drawminibitmaprect.cpp
index ea044c2..9231b90 100644
--- a/gm/drawminibitmaprect.cpp
+++ b/gm/drawminibitmaprect.cpp
@@ -145,7 +145,7 @@
     sk_sp<SkImage>  fImage;
     SkString        fName;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM( return new DrawMiniBitmapRectGM(true); )
diff --git a/gm/drawregion.cpp b/gm/drawregion.cpp
index 8848934..44a3c28 100644
--- a/gm/drawregion.cpp
+++ b/gm/drawregion.cpp
@@ -56,6 +56,6 @@
     SkRegion fRegion;
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new DrawRegionGM; )
diff --git a/gm/drawregionmodes.cpp b/gm/drawregionmodes.cpp
index 3b153a0..d476324 100644
--- a/gm/drawregionmodes.cpp
+++ b/gm/drawregionmodes.cpp
@@ -85,6 +85,6 @@
 private:
     SkRegion fRegion;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new DrawRegionModesGM; )
diff --git a/gm/drrect.cpp b/gm/drrect.cpp
index 634e203..b863ce5 100644
--- a/gm/drrect.cpp
+++ b/gm/drrect.cpp
@@ -70,7 +70,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new DRRectGM; )
diff --git a/gm/dstreadshuffle.cpp b/gm/dstreadshuffle.cpp
index 4bb233a..64f3bbc 100644
--- a/gm/dstreadshuffle.cpp
+++ b/gm/dstreadshuffle.cpp
@@ -196,7 +196,7 @@
     static constexpr SkColor kBackground = SK_ColorLTGRAY;
     SkPath fConcavePath;
     SkPath fConvexPath;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/emboss.cpp b/gm/emboss.cpp
index 82a13b3..04c99fd 100644
--- a/gm/emboss.cpp
+++ b/gm/emboss.cpp
@@ -88,7 +88,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new EmbossGM;)
diff --git a/gm/encode.cpp b/gm/encode.cpp
index 79688b1..c0946b6 100644
--- a/gm/encode.cpp
+++ b/gm/encode.cpp
@@ -51,7 +51,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new EncodeGM; )
diff --git a/gm/encode_alpha_jpeg.cpp b/gm/encode_alpha_jpeg.cpp
index cc9cf61..14d13d8 100644
--- a/gm/encode_alpha_jpeg.cpp
+++ b/gm/encode_alpha_jpeg.cpp
@@ -103,7 +103,7 @@
 private:
     SkAutoTMalloc<uint8_t> fStorage;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new EncodeJpegAlphaOptsGM; )
diff --git a/gm/encode_color_types.cpp b/gm/encode_color_types.cpp
index b814830..911a439 100644
--- a/gm/encode_color_types.cpp
+++ b/gm/encode_color_types.cpp
@@ -150,7 +150,7 @@
     const Variant              fVariant;
     const char*                fName;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 
diff --git a/gm/encode_platform.cpp b/gm/encode_platform.cpp
index 1a87e0b..591af94 100644
--- a/gm/encode_platform.cpp
+++ b/gm/encode_platform.cpp
@@ -142,7 +142,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new EncodePlatformGM; )
diff --git a/gm/encode_srgb.cpp b/gm/encode_srgb.cpp
index d707b8c..c1c00ec 100644
--- a/gm/encode_srgb.cpp
+++ b/gm/encode_srgb.cpp
@@ -144,7 +144,7 @@
 private:
     SkEncodedImageFormat fEncodedFormat;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new EncodeSRGBGM(SkEncodedImageFormat::kPNG); )
diff --git a/gm/exoticformats.cpp b/gm/exoticformats.cpp
index 02f919b..71a85f2 100644
--- a/gm/exoticformats.cpp
+++ b/gm/exoticformats.cpp
@@ -434,7 +434,7 @@
     sk_sp<SkImage> fETC1Image;
     sk_sp<SkImage> fBC1Image;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/extractbitmap.cpp b/gm/extractbitmap.cpp
index 6809057..3dfe386 100644
--- a/gm/extractbitmap.cpp
+++ b/gm/extractbitmap.cpp
@@ -77,7 +77,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/filltypes.cpp b/gm/filltypes.cpp
index 5f547b9..0817a60 100644
--- a/gm/filltypes.cpp
+++ b/gm/filltypes.cpp
@@ -93,7 +93,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/filltypespersp.cpp b/gm/filltypespersp.cpp
index 6ea8ec0..fbad173 100644
--- a/gm/filltypespersp.cpp
+++ b/gm/filltypespersp.cpp
@@ -133,7 +133,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/filterbitmap.cpp b/gm/filterbitmap.cpp
index 9caa19f..5a6e8ef 100644
--- a/gm/filterbitmap.cpp
+++ b/gm/filterbitmap.cpp
@@ -168,7 +168,7 @@
       }
 private:
     const bool fConvertToG8;
-    typedef FilterBitmapGM INHERITED;
+    using INHERITED = FilterBitmapGM;
 };
 
 class FilterBitmapImageGM: public FilterBitmapGM {
@@ -204,7 +204,7 @@
       }
 private:
     const bool fConvertToG8;
-    typedef FilterBitmapGM INHERITED;
+    using INHERITED = FilterBitmapGM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/filterbug.cpp b/gm/filterbug.cpp
index 777dcb4..a89dfb1 100644
--- a/gm/filterbug.cpp
+++ b/gm/filterbug.cpp
@@ -103,7 +103,7 @@
     sk_sp<SkImage> fTop;
     sk_sp<SkImage> fBot;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/filterfastbounds.cpp b/gm/filterfastbounds.cpp
index ef8ed58..284403d 100644
--- a/gm/filterfastbounds.cpp
+++ b/gm/filterfastbounds.cpp
@@ -316,7 +316,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/flippity.cpp b/gm/flippity.cpp
index 25648ed..aaf9722 100644
--- a/gm/flippity.cpp
+++ b/gm/flippity.cpp
@@ -306,7 +306,7 @@
     SkTArray<sk_sp<SkImage>> fLabels;
     sk_sp<SkImage> fReferenceImages[2];
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new FlippityGM;)
diff --git a/gm/fontcache.cpp b/gm/fontcache.cpp
index 657d1ef..a373627 100644
--- a/gm/fontcache.cpp
+++ b/gm/fontcache.cpp
@@ -130,7 +130,7 @@
 
     GrContextOptions::Enable fAllowMultipleTextures;
     sk_sp<SkTypeface> fTypefaces[6];
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 constexpr SkScalar FontCacheGM::kSize;
diff --git a/gm/fontregen.cpp b/gm/fontregen.cpp
index a474943..fe68689 100644
--- a/gm/fontregen.cpp
+++ b/gm/fontregen.cpp
@@ -110,7 +110,7 @@
     static constexpr int kSize = 512;
 
     sk_sp<SkTextBlob> fBlobs[3];
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
@@ -154,7 +154,7 @@
     static constexpr int kSize = 512;
 
     sk_sp<SkTextBlob> fBlobs[3];
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/fontscaler.cpp b/gm/fontscaler.cpp
index a27f223..9e6cc0f 100644
--- a/gm/fontscaler.cpp
+++ b/gm/fontscaler.cpp
@@ -78,7 +78,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/fpcoordinateoverride.cpp b/gm/fpcoordinateoverride.cpp
index a42acf6..42155b6 100644
--- a/gm/fpcoordinateoverride.cpp
+++ b/gm/fpcoordinateoverride.cpp
@@ -56,7 +56,7 @@
 
 private:
     GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
-    typedef GrFragmentProcessor INHERITED;
+    using INHERITED = GrFragmentProcessor;
 };
 
 class GLSLSampleCoordEffect : public GrGLSLFragmentProcessor {
diff --git a/gm/fwidth_squircle.cpp b/gm/fwidth_squircle.cpp
index a73944f..32b699e 100644
--- a/gm/fwidth_squircle.cpp
+++ b/gm/fwidth_squircle.cpp
@@ -87,7 +87,7 @@
 
     class Impl;
 
-    typedef GrGeometryProcessor INHERITED;
+    using INHERITED = GrGeometryProcessor;
 };
 
 class FwidthSquircleTestProcessor::Impl : public GrGLSLGeometryProcessor {
@@ -245,7 +245,7 @@
 
     friend class ::GrOpMemoryPool; // for ctor
 
-    typedef GrDrawOp INHERITED;
+    using INHERITED = GrDrawOp;
 };
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/gm/gammatext.cpp b/gm/gammatext.cpp
index a2b6de5..4949494 100644
--- a/gm/gammatext.cpp
+++ b/gm/gammatext.cpp
@@ -89,7 +89,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM( return new GammaTextGM; )
@@ -156,7 +156,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM( return new GammaShaderTextGM; )
diff --git a/gm/giantbitmap.cpp b/gm/giantbitmap.cpp
index 4a32c29..82311da 100644
--- a/gm/giantbitmap.cpp
+++ b/gm/giantbitmap.cpp
@@ -126,7 +126,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/gradient_dirty_laundry.cpp b/gm/gradient_dirty_laundry.cpp
index 3750899..cbf5e96 100644
--- a/gm/gradient_dirty_laundry.cpp
+++ b/gm/gradient_dirty_laundry.cpp
@@ -103,7 +103,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/gradients.cpp b/gm/gradients.cpp
index 34cfec4..904a67f 100644
--- a/gm/gradients.cpp
+++ b/gm/gradients.cpp
@@ -360,7 +360,7 @@
     }
 
 private:
-    typedef GradientsGM INHERITED;
+    using INHERITED = GradientsGM;
 };
 DEF_GM( return new GradientsViewPerspectiveGM(true); )
 DEF_GM( return new GradientsViewPerspectiveGM(false); )
@@ -579,7 +579,7 @@
 private:
     bool fDither;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new RadialGradient2GM(true); )
 DEF_GM( return new RadialGradient2GM(false); )
@@ -617,7 +617,7 @@
     sk_sp<SkShader> fShader;
     bool fDither;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new RadialGradient3GM(true); )
 DEF_GM( return new RadialGradient3GM(false); )
@@ -655,7 +655,7 @@
     sk_sp<SkShader> fShader;
     bool fDither;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new RadialGradient4GM(true); )
 DEF_GM( return new RadialGradient4GM(false); )
@@ -707,7 +707,7 @@
     sk_sp<SkShader> fShader[100];
     bool fDither;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new LinearGradientGM(true); )
 DEF_GM( return new LinearGradientGM(false); )
diff --git a/gm/gradients_degenerate.cpp b/gm/gradients_degenerate.cpp
index ae4de5c..2b8306c 100644
--- a/gm/gradients_degenerate.cpp
+++ b/gm/gradients_degenerate.cpp
@@ -154,7 +154,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new DegenerateGradientGM;)
diff --git a/gm/gradients_no_texture.cpp b/gm/gradients_no_texture.cpp
index 32412b9..93987c8 100644
--- a/gm/gradients_no_texture.cpp
+++ b/gm/gradients_no_texture.cpp
@@ -135,7 +135,7 @@
 private:
     bool fDither;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -287,7 +287,7 @@
 private:
     bool fDither;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/hairlines.cpp b/gm/hairlines.cpp
index 0674f1b..f91482e 100644
--- a/gm/hairlines.cpp
+++ b/gm/hairlines.cpp
@@ -192,7 +192,7 @@
 
 private:
     SkTArray<SkPath> fPaths;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 static void draw_squarehair_tests(SkCanvas* canvas, SkScalar width, SkPaint::Cap cap, bool aa) {
diff --git a/gm/hairmodes.cpp b/gm/hairmodes.cpp
index 92b1ae2..3a05c44 100644
--- a/gm/hairmodes.cpp
+++ b/gm/hairmodes.cpp
@@ -126,7 +126,7 @@
         }
 
     private:
-        typedef GM INHERITED;
+        using INHERITED = GM;
     };
 
     //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/hardstop_gradients.cpp b/gm/hardstop_gradients.cpp
index 4155dd0..9b65b70 100644
--- a/gm/hardstop_gradients.cpp
+++ b/gm/hardstop_gradients.cpp
@@ -168,7 +168,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new HardstopGradientShaderGM;)
diff --git a/gm/highcontrastfilter.cpp b/gm/highcontrastfilter.cpp
index 552a062..f83a374 100644
--- a/gm/highcontrastfilter.cpp
+++ b/gm/highcontrastfilter.cpp
@@ -160,7 +160,7 @@
     sk_sp<SkColorFilter>    fFilter;
     sk_sp<SkShader>         fGr1, fGr2;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new HighContrastFilterGM;)
diff --git a/gm/image.cpp b/gm/image.cpp
index 2d66e86..e2f2922 100644
--- a/gm/image.cpp
+++ b/gm/image.cpp
@@ -172,7 +172,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ImageGM; )
 
@@ -295,7 +295,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ScalePixelsGM; )
 
diff --git a/gm/image_pict.cpp b/gm/image_pict.cpp
index 8cb14d2..bb785b7 100644
--- a/gm/image_pict.cpp
+++ b/gm/image_pict.cpp
@@ -120,7 +120,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ImagePictGM; )
 
@@ -366,7 +366,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM( return new ImageCacheratorGM("picture", make_pic_generator); )
diff --git a/gm/image_shader.cpp b/gm/image_shader.cpp
index 169410a..72f6a93 100644
--- a/gm/image_shader.cpp
+++ b/gm/image_shader.cpp
@@ -150,6 +150,6 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ImageShaderGM; )
diff --git a/gm/imagealphathreshold.cpp b/gm/imagealphathreshold.cpp
index c9a5a3f..7eb2f32 100644
--- a/gm/imagealphathreshold.cpp
+++ b/gm/imagealphathreshold.cpp
@@ -96,7 +96,7 @@
 private:
     bool fUseCropRect;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 // Create a 'width' x 'height' SkSurface that matches the colorType of 'canvas' as
@@ -160,7 +160,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/imageblurclampmode.cpp b/gm/imageblurclampmode.cpp
index e6d5d98..3bbd18e 100644
--- a/gm/imageblurclampmode.cpp
+++ b/gm/imageblurclampmode.cpp
@@ -105,7 +105,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/imageblurrepeatmode.cpp b/gm/imageblurrepeatmode.cpp
index 7a6cff8..a6f03f2 100644
--- a/gm/imageblurrepeatmode.cpp
+++ b/gm/imageblurrepeatmode.cpp
@@ -119,7 +119,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/imageblurtiled.cpp b/gm/imageblurtiled.cpp
index 0e36607..3b4252a 100644
--- a/gm/imageblurtiled.cpp
+++ b/gm/imageblurtiled.cpp
@@ -71,7 +71,7 @@
     SkScalar fSigmaX;
     SkScalar fSigmaY;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
index b99a7b9..85735fc 100644
--- a/gm/imagefiltersbase.cpp
+++ b/gm/imagefiltersbase.cpp
@@ -51,7 +51,7 @@
 
 private:
 
-    typedef SkImageFilter_Base INHERITED;
+    using INHERITED = SkImageFilter_Base;
 };
 
 sk_sp<SkFlattenable> FailImageFilter::CreateProc(SkReadBuffer& buffer) {
@@ -76,7 +76,7 @@
 private:
     IdentityImageFilter(sk_sp<SkImageFilter> input) : INHERITED(&input, 1, nullptr) {}
 
-    typedef SkImageFilter_Base INHERITED;
+    using INHERITED = SkImageFilter_Base;
 };
 
 // Register these image filters as deserializable before main().
@@ -275,7 +275,7 @@
 
     sk_sp<SkImage> fAtlas;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new ImageFiltersBaseGM; )
 
@@ -346,7 +346,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 class ImageFiltersText_IF : public ImageFiltersTextBaseGM {
diff --git a/gm/imagefiltersclipped.cpp b/gm/imagefiltersclipped.cpp
index f861e39..7372e40 100644
--- a/gm/imagefiltersclipped.cpp
+++ b/gm/imagefiltersclipped.cpp
@@ -150,7 +150,7 @@
 private:
     sk_sp<SkImage> fCheckerboard, fGradientCircle;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/imagefilterscropped.cpp b/gm/imagefilterscropped.cpp
index 21f3981..b0b09cf 100644
--- a/gm/imagefilterscropped.cpp
+++ b/gm/imagefilterscropped.cpp
@@ -172,7 +172,7 @@
 
 private:
     SkBitmap fCheckerboard;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp
index 25e4de9..6ed23e1 100644
--- a/gm/imagefiltersgraph.cpp
+++ b/gm/imagefiltersgraph.cpp
@@ -156,7 +156,7 @@
 
     sk_sp<SkImage> fImage;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/imagefiltersscaled.cpp b/gm/imagefiltersscaled.cpp
index d84f106..a5ca3e7 100644
--- a/gm/imagefiltersscaled.cpp
+++ b/gm/imagefiltersscaled.cpp
@@ -156,7 +156,7 @@
 private:
     sk_sp<SkImage> fCheckerboard, fGradientCircle;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/imagefiltersstroked.cpp b/gm/imagefiltersstroked.cpp
index 2270362..df944a9 100644
--- a/gm/imagefiltersstroked.cpp
+++ b/gm/imagefiltersstroked.cpp
@@ -102,7 +102,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/imagefilterstransformed.cpp b/gm/imagefilterstransformed.cpp
index 8d14474..d2a0622 100644
--- a/gm/imagefilterstransformed.cpp
+++ b/gm/imagefilterstransformed.cpp
@@ -120,7 +120,7 @@
 private:
     sk_sp<SkImage> fCheckerboard;
     sk_sp<SkImage> fGradientCircle;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new ImageFiltersTransformedGM; )
 }  // namespace skiagm
diff --git a/gm/imagefromyuvtextures.cpp b/gm/imagefromyuvtextures.cpp
index a3920e4..60183b6 100644
--- a/gm/imagefromyuvtextures.cpp
+++ b/gm/imagefromyuvtextures.cpp
@@ -331,7 +331,7 @@
 
     static constexpr SkScalar kPad = 10.0f;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new ImageFromYUVTextures;)
diff --git a/gm/imagemakewithfilter.cpp b/gm/imagemakewithfilter.cpp
index 10f5670..958b1d0 100644
--- a/gm/imagemakewithfilter.cpp
+++ b/gm/imagemakewithfilter.cpp
@@ -389,7 +389,7 @@
         }
     }
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 // The different strategies should all look the same, with the exception of filters that affect
 // transparent black (i.e. the lighting filter). In the save layer case, the filter affects the
diff --git a/gm/imagemasksubset.cpp b/gm/imagemasksubset.cpp
index d8f40ba..5775021 100644
--- a/gm/imagemasksubset.cpp
+++ b/gm/imagemasksubset.cpp
@@ -47,7 +47,7 @@
     }
 
 private:
-    typedef SkImageGenerator INHERITED;
+    using INHERITED = SkImageGenerator;
 };
 
 using MakerT = sk_sp<SkImage>(*)(SkCanvas*, const SkImageInfo&);
diff --git a/gm/imagescalealigned.cpp b/gm/imagescalealigned.cpp
index d245a10..1ee5f37 100644
--- a/gm/imagescalealigned.cpp
+++ b/gm/imagescalealigned.cpp
@@ -155,7 +155,7 @@
     static constexpr unsigned  kStretchFactor = 4;
     SkSTArray<2, ImageSet> fSets;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new ImageScaleAlignedGM();)
diff --git a/gm/imagesource.cpp b/gm/imagesource.cpp
index 897012e..ea7544a 100644
--- a/gm/imagesource.cpp
+++ b/gm/imagesource.cpp
@@ -91,7 +91,7 @@
 
 private:
     sk_sp<SkImage> fImage;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/imagesource2.cpp b/gm/imagesource2.cpp
index 9ddf807..005a626 100644
--- a/gm/imagesource2.cpp
+++ b/gm/imagesource2.cpp
@@ -90,7 +90,7 @@
     SkFilterQuality fFilter;
     sk_sp<SkImage>  fImage;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/jpg_color_cube.cpp b/gm/jpg_color_cube.cpp
index 6ed782b..e9940d9 100644
--- a/gm/jpg_color_cube.cpp
+++ b/gm/jpg_color_cube.cpp
@@ -65,7 +65,7 @@
 private:
     sk_sp<SkImage> fImage;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new ColorCubeGM; )
diff --git a/gm/lattice.cpp b/gm/lattice.cpp
index d1090cb..21d3d8b 100644
--- a/gm/lattice.cpp
+++ b/gm/lattice.cpp
@@ -221,7 +221,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new LatticeGM; )
 
@@ -355,7 +355,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new LatticeGM2; )
 
diff --git a/gm/lcdblendmodes.cpp b/gm/lcdblendmodes.cpp
index f6c5a01..91c3d63 100644
--- a/gm/lcdblendmodes.cpp
+++ b/gm/lcdblendmodes.cpp
@@ -146,7 +146,7 @@
 private:
     SkScalar fTextHeight;
     sk_sp<SkShader> fCheckerboard;
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/lcdoverlap.cpp b/gm/lcdoverlap.cpp
index 8470fd6..6b1e980 100644
--- a/gm/lcdoverlap.cpp
+++ b/gm/lcdoverlap.cpp
@@ -91,7 +91,7 @@
 private:
     SkScalar fTextHeight;
     sk_sp<SkTextBlob> fBlob;
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/lighting.cpp b/gm/lighting.cpp
index f47c85d..9a272e4 100644
--- a/gm/lighting.cpp
+++ b/gm/lighting.cpp
@@ -147,7 +147,7 @@
     SkBitmap fBitmap;
     SkScalar fAzimuth;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/lumafilter.cpp b/gm/lumafilter.cpp
index 3c360be..ce8b571 100644
--- a/gm/lumafilter.cpp
+++ b/gm/lumafilter.cpp
@@ -161,7 +161,7 @@
     sk_sp<SkColorFilter>    fFilter;
     sk_sp<SkShader>         fGr1, fGr2;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/manypaths.cpp b/gm/manypaths.cpp
index 4f6fca3..24fc263 100644
--- a/gm/manypaths.cpp
+++ b/gm/manypaths.cpp
@@ -64,7 +64,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
@@ -117,7 +117,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/matrixconvolution.cpp b/gm/matrixconvolution.cpp
index 006d14e..582392e 100644
--- a/gm/matrixconvolution.cpp
+++ b/gm/matrixconvolution.cpp
@@ -140,7 +140,7 @@
     const char* fNameSuffix;
     KernelFixture fKernelFixture;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/mixedtextblobs.cpp b/gm/mixedtextblobs.cpp
index 4f0107a..e7b6828 100644
--- a/gm/mixedtextblobs.cpp
+++ b/gm/mixedtextblobs.cpp
@@ -160,7 +160,7 @@
     static constexpr int kWidth = 1250;
     static constexpr int kHeight = 700;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/modecolorfilters.cpp b/gm/modecolorfilters.cpp
index a4dac43..eaa0639 100644
--- a/gm/modecolorfilters.cpp
+++ b/gm/modecolorfilters.cpp
@@ -162,7 +162,7 @@
 
 private:
     sk_sp<SkShader> fBmpShader;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/morphology.cpp b/gm/morphology.cpp
index 6841e41..9a7c7b4 100644
--- a/gm/morphology.cpp
+++ b/gm/morphology.cpp
@@ -93,7 +93,7 @@
 private:
     SkBitmap fBitmap;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/nested.cpp b/gm/nested.cpp
index 67390ad..3dc3c3d 100644
--- a/gm/nested.cpp
+++ b/gm/nested.cpp
@@ -137,7 +137,7 @@
     bool fDoAA;
     bool fFlipped;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/ninepatchstretch.cpp b/gm/ninepatchstretch.cpp
index 9b96d4b..078126f 100644
--- a/gm/ninepatchstretch.cpp
+++ b/gm/ninepatchstretch.cpp
@@ -106,6 +106,6 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new NinePatchStretchGM; )
diff --git a/gm/nonclosedpaths.cpp b/gm/nonclosedpaths.cpp
index 67d94c6..dccce38 100644
--- a/gm/nonclosedpaths.cpp
+++ b/gm/nonclosedpaths.cpp
@@ -141,7 +141,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/offsetimagefilter.cpp b/gm/offsetimagefilter.cpp
index 47ed99c..f7104b7 100644
--- a/gm/offsetimagefilter.cpp
+++ b/gm/offsetimagefilter.cpp
@@ -98,7 +98,7 @@
 
     sk_sp<SkImage> fBitmap, fCheckerboard;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new OffsetImageFilterGM; )
 
@@ -207,6 +207,6 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new SimpleOffsetImageFilterGM; )
diff --git a/gm/ovals.cpp b/gm/ovals.cpp
index 49e1e2d..f6d9669 100644
--- a/gm/ovals.cpp
+++ b/gm/ovals.cpp
@@ -301,7 +301,7 @@
     SkTArray<SkPaint> fPaints;
     SkTArray<SkMatrix> fMatrices;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/pathcontourstart.cpp b/gm/pathcontourstart.cpp
index 72d955e..f2df489 100644
--- a/gm/pathcontourstart.cpp
+++ b/gm/pathcontourstart.cpp
@@ -116,7 +116,7 @@
         }
     }
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new ContourStartGM(); )
diff --git a/gm/patheffects.cpp b/gm/patheffects.cpp
index 5964f32..aabe3de 100644
--- a/gm/patheffects.cpp
+++ b/gm/patheffects.cpp
@@ -169,7 +169,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new PathEffectGM; )
@@ -232,7 +232,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM(return new ComboPathEfectsGM;)
 
diff --git a/gm/pathfill.cpp b/gm/pathfill.cpp
index 578edad..c2d4046 100644
--- a/gm/pathfill.cpp
+++ b/gm/pathfill.cpp
@@ -349,7 +349,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 // test inverse-fill w/ a clip that completely excludes the geometry
@@ -415,7 +415,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_SIMPLE_GM(rotatedcubicpath, canvas, 200, 200) {
diff --git a/gm/pathinterior.cpp b/gm/pathinterior.cpp
index eb83d93..636e5f5 100644
--- a/gm/pathinterior.cpp
+++ b/gm/pathinterior.cpp
@@ -108,7 +108,7 @@
 
 private:
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/pathmaskcache.cpp b/gm/pathmaskcache.cpp
index 07642fe..7493cdd 100644
--- a/gm/pathmaskcache.cpp
+++ b/gm/pathmaskcache.cpp
@@ -114,7 +114,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new PathMaskCache(); )
diff --git a/gm/pathopsinverse.cpp b/gm/pathopsinverse.cpp
index 23676e3..c52a88f 100644
--- a/gm/pathopsinverse.cpp
+++ b/gm/pathopsinverse.cpp
@@ -110,7 +110,7 @@
     SkPaint fTwoPaint;
     SkPaint fOutlinePaint;
     SkPaint fOpPaint[kReverseDifference_SkPathOp - kDifference_SkPathOp + 1];
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/perlinnoise.cpp b/gm/perlinnoise.cpp
index 1c5aa7d..5f30772 100644
--- a/gm/perlinnoise.cpp
+++ b/gm/perlinnoise.cpp
@@ -100,7 +100,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 class PerlinNoiseGM2 : public skiagm::GM {
diff --git a/gm/perspimages.cpp b/gm/perspimages.cpp
index 6be57b6..74990cc 100644
--- a/gm/perspimages.cpp
+++ b/gm/perspimages.cpp
@@ -123,7 +123,7 @@
     static constexpr int kNumImages = 4;
     SkTArray<sk_sp<SkImage>> fImages;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/perspshaders.cpp b/gm/perspshaders.cpp
index fcd9db5..956fd72 100644
--- a/gm/perspshaders.cpp
+++ b/gm/perspshaders.cpp
@@ -177,7 +177,7 @@
     sk_sp<SkImage>  fImage;
     SkBitmap        fBitmap;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM(return new PerspShadersGM(true);)
 DEF_GM(return new PerspShadersGM(false);)
diff --git a/gm/picture.cpp b/gm/picture.cpp
index fbf46af..907b234 100644
--- a/gm/picture.cpp
+++ b/gm/picture.cpp
@@ -84,7 +84,7 @@
 private:
     sk_sp<SkPicture> fPicture;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 // Exercise drawing a picture with a cull rect of non-zero top-left corner.
@@ -139,7 +139,7 @@
 private:
     sk_sp<SkPicture> fPicture;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new PictureGM;)
diff --git a/gm/pictureimagefilter.cpp b/gm/pictureimagefilter.cpp
index 40a6d68..df0a330 100644
--- a/gm/pictureimagefilter.cpp
+++ b/gm/pictureimagefilter.cpp
@@ -153,7 +153,7 @@
     sk_sp<SkPicture> fPicture;
     sk_sp<SkPicture> fLCDPicture;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/pictureimagegenerator.cpp b/gm/pictureimagegenerator.cpp
index b453420..a0e27b6 100644
--- a/gm/pictureimagegenerator.cpp
+++ b/gm/pictureimagegenerator.cpp
@@ -206,7 +206,7 @@
     const SkScalar kPictureWidth = 200;
     const SkScalar kPictureHeight = 100;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new PictureGeneratorGM;)
diff --git a/gm/pictureshader.cpp b/gm/pictureshader.cpp
index 7a592e9..f0818bb 100644
--- a/gm/pictureshader.cpp
+++ b/gm/pictureshader.cpp
@@ -192,7 +192,7 @@
     SkScalar    fSceneSize;
     bool        fUseLocalMatrixWrapper;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new PictureShaderGM(50, 100);)
diff --git a/gm/pictureshadercache.cpp b/gm/pictureshadercache.cpp
index d6f2b1b..a21c276 100644
--- a/gm/pictureshadercache.cpp
+++ b/gm/pictureshadercache.cpp
@@ -93,7 +93,7 @@
     sk_sp<SkPicture> fPicture;
     SkBitmap         fBitmap;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new PictureShaderCacheGM(100);)
diff --git a/gm/pictureshadertile.cpp b/gm/pictureshadertile.cpp
index d7afbe9..ea2ba4d 100644
--- a/gm/pictureshadertile.cpp
+++ b/gm/pictureshadertile.cpp
@@ -159,7 +159,7 @@
 private:
     sk_sp<SkShader> fShaders[SK_ARRAY_COUNT(tiles)];
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new PictureShaderTileGM;)
diff --git a/gm/pixelsnap.cpp b/gm/pixelsnap.cpp
index d3522bb..659f3f0 100644
--- a/gm/pixelsnap.cpp
+++ b/gm/pixelsnap.cpp
@@ -107,7 +107,7 @@
     virtual void drawElement(SkCanvas*) = 0;
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 class PointSnapGM : public PixelSnapGM {
@@ -121,7 +121,7 @@
     }
 
 private:
-    typedef PixelSnapGM INHERITED;
+    using INHERITED = PixelSnapGM;
 };
 
 class LineSnapGM : public PixelSnapGM {
@@ -136,7 +136,7 @@
     }
 
 private:
-    typedef PixelSnapGM INHERITED;
+    using INHERITED = PixelSnapGM;
 };
 
 class RectSnapGM : public PixelSnapGM {
@@ -149,7 +149,7 @@
     }
 
 private:
-    typedef PixelSnapGM INHERITED;
+    using INHERITED = PixelSnapGM;
 };
 
 class ComboSnapGM : public PixelSnapGM {
@@ -186,7 +186,7 @@
     }
 
 private:
-    typedef PixelSnapGM INHERITED;
+    using INHERITED = PixelSnapGM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/points.cpp b/gm/points.cpp
index a6a76eb..324cb0a 100644
--- a/gm/points.cpp
+++ b/gm/points.cpp
@@ -72,7 +72,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/poly2poly.cpp b/gm/poly2poly.cpp
index 141a602..c8695b9 100644
--- a/gm/poly2poly.cpp
+++ b/gm/poly2poly.cpp
@@ -116,7 +116,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
     sk_sp<SkTypeface> fEmFace;
 };
 
diff --git a/gm/polygonoffset.cpp b/gm/polygonoffset.cpp
index fe703a1..c5470dc 100644
--- a/gm/polygonoffset.cpp
+++ b/gm/polygonoffset.cpp
@@ -616,7 +616,7 @@
 
     bool fConvexOnly;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/polygons.cpp b/gm/polygons.cpp
index d7328a4..ee2b734 100644
--- a/gm/polygons.cpp
+++ b/gm/polygons.cpp
@@ -167,7 +167,7 @@
     static constexpr int kNumJoins = 3;
 
     SkTArray<SkPath> fPolygons;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/quadpaths.cpp b/gm/quadpaths.cpp
index 408d6c1..5dbb73a 100644
--- a/gm/quadpaths.cpp
+++ b/gm/quadpaths.cpp
@@ -149,7 +149,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 class QuadClosePathGM : public GM {
@@ -279,7 +279,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/readpixels.cpp b/gm/readpixels.cpp
index 02afa7c..20562a9 100644
--- a/gm/readpixels.cpp
+++ b/gm/readpixels.cpp
@@ -185,7 +185,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ReadPixelsGM; )
 
@@ -249,7 +249,7 @@
     static const int kEncodedWidth = 8;
     static const int kEncodedHeight = 8;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ReadPixelsCodecGM; )
 
@@ -315,6 +315,6 @@
 
 private:
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ReadPixelsPictureGM; )
diff --git a/gm/rectangletexture.cpp b/gm/rectangletexture.cpp
index ba23724..7dbd164 100644
--- a/gm/rectangletexture.cpp
+++ b/gm/rectangletexture.cpp
@@ -257,7 +257,7 @@
     sk_sp<SkImage> fGradImgs[kNumGradImages];
     sk_sp<SkImage> fSmallImg;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new RectangleTexture;)
diff --git a/gm/rects.cpp b/gm/rects.cpp
index 63153d4..be1ed47 100644
--- a/gm/rects.cpp
+++ b/gm/rects.cpp
@@ -295,7 +295,7 @@
     SkTArray<SkMatrix> fMatrices;
     SkTArray<SkRect>   fRects;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/resizeimagefilter.cpp b/gm/resizeimagefilter.cpp
index 8fd6ddd..482e3ae 100644
--- a/gm/resizeimagefilter.cpp
+++ b/gm/resizeimagefilter.cpp
@@ -109,7 +109,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/roundrects.cpp b/gm/roundrects.cpp
index 4f4a8cb..d05de86 100644
--- a/gm/roundrects.cpp
+++ b/gm/roundrects.cpp
@@ -375,7 +375,7 @@
     SkTArray<SkPaint> fPaints;
     SkTArray<SkMatrix> fMatrices;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/rrect.cpp b/gm/rrect.cpp
index 275afb4..c9a536d 100644
--- a/gm/rrect.cpp
+++ b/gm/rrect.cpp
@@ -172,7 +172,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new RRectGM; )
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index f23973f..9481643 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -196,7 +196,7 @@
     static constexpr int kNumRRects = kNumSimpleCases + kNumComplexCases;
     SkRRect fRRects[kNumRRects];
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 // Radii for the various test cases. Order is UL, UR, LR, LL
diff --git a/gm/sample_matrix_constant.cpp b/gm/sample_matrix_constant.cpp
index 409ff1d..c96ac76 100644
--- a/gm/sample_matrix_constant.cpp
+++ b/gm/sample_matrix_constant.cpp
@@ -40,7 +40,7 @@
 
 private:
     GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
-    typedef GrFragmentProcessor INHERITED;
+    using INHERITED = GrFragmentProcessor;
 };
 
 class GLSLSampleMatrixConstantEffect : public GrGLSLFragmentProcessor {
diff --git a/gm/sample_matrix_variable.cpp b/gm/sample_matrix_variable.cpp
index 9f2ab18..4932460 100644
--- a/gm/sample_matrix_variable.cpp
+++ b/gm/sample_matrix_variable.cpp
@@ -44,7 +44,7 @@
     float fXOffset;
     float fYOffset;
 
-    typedef GrFragmentProcessor INHERITED;
+    using INHERITED = GrFragmentProcessor;
     friend class GLSLSampleMatrixVariableEffect;
 };
 
diff --git a/gm/samplelocations.cpp b/gm/samplelocations.cpp
index e2cf0ac..0ceda73 100644
--- a/gm/samplelocations.cpp
+++ b/gm/samplelocations.cpp
@@ -121,7 +121,7 @@
 
     class Impl;
 
-    typedef GrGeometryProcessor INHERITED;
+    using INHERITED = GrGeometryProcessor;
 };
 
 class SampleLocationsTestProcessor::Impl : public GrGLSLGeometryProcessor {
@@ -304,7 +304,7 @@
 
     friend class ::GrOpMemoryPool; // for ctor
 
-    typedef GrDrawOp INHERITED;
+    using INHERITED = GrDrawOp;
 };
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/gm/samplerstress.cpp b/gm/samplerstress.cpp
index d4af469..bc435e9 100644
--- a/gm/samplerstress.cpp
+++ b/gm/samplerstress.cpp
@@ -142,7 +142,7 @@
     sk_sp<SkShader> fShader;
     sk_sp<SkMaskFilter> fMaskFilter;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/savelayer.cpp b/gm/savelayer.cpp
index 9ce7be1..6b6854f 100644
--- a/gm/savelayer.cpp
+++ b/gm/savelayer.cpp
@@ -93,7 +93,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM(return new UnclippedSaveLayerGM;)
 
diff --git a/gm/scaledemoji.cpp b/gm/scaledemoji.cpp
index f9fc91c..11b07b5 100644
--- a/gm/scaledemoji.cpp
+++ b/gm/scaledemoji.cpp
@@ -83,7 +83,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 class ScaledEmojiPosGM : public GM {
@@ -142,7 +142,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/scaledemoji_rendering.cpp b/gm/scaledemoji_rendering.cpp
index cf2407d..f1f7103 100644
--- a/gm/scaledemoji_rendering.cpp
+++ b/gm/scaledemoji_rendering.cpp
@@ -73,7 +73,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/scaledstrokes.cpp b/gm/scaledstrokes.cpp
index 1bc081b..be8eb61 100644
--- a/gm/scaledstrokes.cpp
+++ b/gm/scaledstrokes.cpp
@@ -81,7 +81,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new ScaledStrokesGM; )
diff --git a/gm/shadertext3.cpp b/gm/shadertext3.cpp
index 864ee66..0bfe8c7 100644
--- a/gm/shadertext3.cpp
+++ b/gm/shadertext3.cpp
@@ -137,7 +137,7 @@
 
 private:
     SkBitmap fBmp;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/gm/shapes.cpp b/gm/shapes.cpp
index f8300b5..f11b02c 100644
--- a/gm/shapes.cpp
+++ b/gm/shapes.cpp
@@ -94,7 +94,7 @@
     int                  fSimpleShapeCount;
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 class SimpleShapesGM : public ShapesGM {
@@ -126,7 +126,7 @@
         }
     }
 
-    typedef ShapesGM INHERITED;
+    using INHERITED = ShapesGM;
 };
 
 class InnerShapesGM : public ShapesGM {
@@ -161,7 +161,7 @@
         }
     }
 
-    typedef ShapesGM INHERITED;
+    using INHERITED = ShapesGM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/showmiplevels.cpp b/gm/showmiplevels.cpp
index 7647d27..0f121fa 100644
--- a/gm/showmiplevels.cpp
+++ b/gm/showmiplevels.cpp
@@ -193,7 +193,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ShowMipLevels(255); )
 DEF_GM( return new ShowMipLevels(256); )
@@ -306,7 +306,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ShowMipLevels2(255, 255); )
 DEF_GM( return new ShowMipLevels2(256, 255); )
@@ -369,6 +369,6 @@
         return r.height() + 10;
     }
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new ShowMipLevels3; )
diff --git a/gm/simple_magnification.cpp b/gm/simple_magnification.cpp
index 3e41798..1cbcef6 100644
--- a/gm/simple_magnification.cpp
+++ b/gm/simple_magnification.cpp
@@ -134,7 +134,7 @@
     static const int kImgSize = 33;
     static const int kPad = 2;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/simpleaaclip.cpp b/gm/simpleaaclip.cpp
index 3b28652..cf4c9eb 100644
--- a/gm/simpleaaclip.cpp
+++ b/gm/simpleaaclip.cpp
@@ -197,7 +197,7 @@
     SkPath fBasePath;       // fBase as a round rect
     SkPath fRectPath;       // fRect as a round rect
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/simplerect.cpp b/gm/simplerect.cpp
index 92a7b6d..7dba895 100644
--- a/gm/simplerect.cpp
+++ b/gm/simplerect.cpp
@@ -53,6 +53,6 @@
 
 private:
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM(return new SimpleRectGM;)
diff --git a/gm/smallpaths.cpp b/gm/smallpaths.cpp
index 5cd2748..c121cc4 100644
--- a/gm/smallpaths.cpp
+++ b/gm/smallpaths.cpp
@@ -393,7 +393,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new SmallPathsGM;)
diff --git a/gm/spritebitmap.cpp b/gm/spritebitmap.cpp
index 8d76843..99db186 100644
--- a/gm/spritebitmap.cpp
+++ b/gm/spritebitmap.cpp
@@ -93,6 +93,6 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new SpriteBitmapGM; )
diff --git a/gm/stlouisarch.cpp b/gm/stlouisarch.cpp
index 1e348cb..4166eb8 100644
--- a/gm/stlouisarch.cpp
+++ b/gm/stlouisarch.cpp
@@ -91,7 +91,7 @@
 
 private:
     SkTArray<SkPath> fPaths;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/stringart.cpp b/gm/stringart.cpp
index 0f766c9..5d53026 100644
--- a/gm/stringart.cpp
+++ b/gm/stringart.cpp
@@ -85,7 +85,7 @@
 private:
     int fNumSteps;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new StringArtGM; )
@@ -156,7 +156,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new SkottieGM; )
 #endif
diff --git a/gm/strokedlines.cpp b/gm/strokedlines.cpp
index 50af641..00f8ed9 100644
--- a/gm/strokedlines.cpp
+++ b/gm/strokedlines.cpp
@@ -232,7 +232,7 @@
     SkTArray<SkPaint> fPaints;
     SkTArray<SkMatrix> fMatrices;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/strokerect.cpp b/gm/strokerect.cpp
index ce43d8d..364f588 100644
--- a/gm/strokerect.cpp
+++ b/gm/strokerect.cpp
@@ -119,7 +119,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM(return new StrokeRectGM;)
 
diff --git a/gm/strokerect_anisotropic.cpp b/gm/strokerect_anisotropic.cpp
index aecea30..2123130 100644
--- a/gm/strokerect_anisotropic.cpp
+++ b/gm/strokerect_anisotropic.cpp
@@ -76,7 +76,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM(return new StrokeRectAnisotropicGM;)
 
diff --git a/gm/strokerects.cpp b/gm/strokerects.cpp
index 2f1637e..d14423f 100644
--- a/gm/strokerects.cpp
+++ b/gm/strokerects.cpp
@@ -76,7 +76,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/strokes.cpp b/gm/strokes.cpp
index 51fd97f..ecb50eb 100644
--- a/gm/strokes.cpp
+++ b/gm/strokes.cpp
@@ -89,7 +89,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 /* See
@@ -169,7 +169,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 class TeenyStrokesGM : public skiagm::GM {
@@ -204,7 +204,7 @@
         line(0.000002f, canvas, SK_ColorBLACK);
     }
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_SIMPLE_GM(CubicStroke, canvas, 384, 384) {
@@ -331,7 +331,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
@@ -436,7 +436,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 class Strokes4GM : public skiagm::GM {
@@ -463,7 +463,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 // Test stroking for curves that produce degenerate tangents when t is 0 or 1 (see bug 4191)
@@ -517,7 +517,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 
diff --git a/gm/surface.cpp b/gm/surface.cpp
index 0c1019b..afed502 100644
--- a/gm/surface.cpp
+++ b/gm/surface.cpp
@@ -114,7 +114,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new SurfacePropsGM )
 
@@ -161,7 +161,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new NewSurfaceGM )
 
diff --git a/gm/tablecolorfilter.cpp b/gm/tablecolorfilter.cpp
index 5b6fa86..08f71a6 100644
--- a/gm/tablecolorfilter.cpp
+++ b/gm/tablecolorfilter.cpp
@@ -204,7 +204,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new TableColorFilterGM; )
 
diff --git a/gm/tallstretchedbitmaps.cpp b/gm/tallstretchedbitmaps.cpp
index a874981..d0e3ccf 100644
--- a/gm/tallstretchedbitmaps.cpp
+++ b/gm/tallstretchedbitmaps.cpp
@@ -105,7 +105,7 @@
         SkBitmap fBmp;
         int      fItemCnt;
     } fTallBmps[8];
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/testgradient.cpp b/gm/testgradient.cpp
index 9fa3925..808815c 100644
--- a/gm/testgradient.cpp
+++ b/gm/testgradient.cpp
@@ -70,7 +70,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 // Register the GM
diff --git a/gm/texelsubset.cpp b/gm/texelsubset.cpp
index 97766f7..ae1cccd 100644
--- a/gm/texelsubset.cpp
+++ b/gm/texelsubset.cpp
@@ -222,7 +222,7 @@
     MipmapMode fMipmapMode;
     bool fUpscale;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new TexelSubset(Filter::kNearest, MipmapMode::kNone   , false);)
diff --git a/gm/textblob.cpp b/gm/textblob.cpp
index 4f482d8..60cec2a 100644
--- a/gm/textblob.cpp
+++ b/gm/textblob.cpp
@@ -197,7 +197,7 @@
     SkTDArray<uint16_t> fGlyphs;
     sk_sp<SkTypeface>   fTypeface;
     const char*         fText;
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new TextBlobGM("hamburgefons");)
diff --git a/gm/textblobblockreordering.cpp b/gm/textblobblockreordering.cpp
index b7a9cd8..0cb5f82 100644
--- a/gm/textblobblockreordering.cpp
+++ b/gm/textblobblockreordering.cpp
@@ -93,7 +93,7 @@
     static constexpr int kWidth = 275;
     static constexpr int kHeight = 200;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/textblobcolortrans.cpp b/gm/textblobcolortrans.cpp
index 4c8a105..1077160 100644
--- a/gm/textblobcolortrans.cpp
+++ b/gm/textblobcolortrans.cpp
@@ -97,7 +97,7 @@
     static constexpr int kWidth = 675;
     static constexpr int kHeight = 1600;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/textblobgeometrychange.cpp b/gm/textblobgeometrychange.cpp
index 3c3f062..ab561dc 100644
--- a/gm/textblobgeometrychange.cpp
+++ b/gm/textblobgeometrychange.cpp
@@ -72,7 +72,7 @@
     static constexpr int kWidth = 200;
     static constexpr int kHeight = 200;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/textbloblooper.cpp b/gm/textbloblooper.cpp
index 31de25b..f3e1bae 100644
--- a/gm/textbloblooper.cpp
+++ b/gm/textbloblooper.cpp
@@ -267,7 +267,7 @@
     sk_sp<SkTextBlob> fBlob;
     SkTArray<sk_sp<SkDrawLooper>> fLoopers;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/textblobmixedsizes.cpp b/gm/textblobmixedsizes.cpp
index 111a2b6..b891c8f 100644
--- a/gm/textblobmixedsizes.cpp
+++ b/gm/textblobmixedsizes.cpp
@@ -185,7 +185,7 @@
 
     bool fUseDFT;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp
index 57dbdc1..22b6ee4 100644
--- a/gm/textblobrandomfont.cpp
+++ b/gm/textblobrandomfont.cpp
@@ -165,7 +165,7 @@
     static constexpr int kWidth = 2000;
     static constexpr int kHeight = 1600;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/textblobshader.cpp b/gm/textblobshader.cpp
index bc5ade6..455667a 100644
--- a/gm/textblobshader.cpp
+++ b/gm/textblobshader.cpp
@@ -119,7 +119,7 @@
     sk_sp<SkTextBlob>   fBlob;
     sk_sp<SkShader>     fShader;
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new TextBlobShaderGM;)
diff --git a/gm/textblobtransforms.cpp b/gm/textblobtransforms.cpp
index 335b74c..bee808a 100644
--- a/gm/textblobtransforms.cpp
+++ b/gm/textblobtransforms.cpp
@@ -170,7 +170,7 @@
     static constexpr int kWidth = 1000;
     static constexpr int kHeight = 1200;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/textblobuseaftergpufree.cpp b/gm/textblobuseaftergpufree.cpp
index aa23381..b3aab7f 100644
--- a/gm/textblobuseaftergpufree.cpp
+++ b/gm/textblobuseaftergpufree.cpp
@@ -61,7 +61,7 @@
     static constexpr int kWidth = 200;
     static constexpr int kHeight = 200;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/thinrects.cpp b/gm/thinrects.cpp
index 6e562f6..e0316c2 100644
--- a/gm/thinrects.cpp
+++ b/gm/thinrects.cpp
@@ -119,7 +119,7 @@
         }
     }
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/thinstrokedrects.cpp b/gm/thinstrokedrects.cpp
index 0e6743d..ba91499 100644
--- a/gm/thinstrokedrects.cpp
+++ b/gm/thinstrokedrects.cpp
@@ -76,7 +76,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/tiledscaledbitmap.cpp b/gm/tiledscaledbitmap.cpp
index ae9744e..557c7b7 100644
--- a/gm/tiledscaledbitmap.cpp
+++ b/gm/tiledscaledbitmap.cpp
@@ -73,7 +73,7 @@
 private:
     SkBitmap fBitmap;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/tileimagefilter.cpp b/gm/tileimagefilter.cpp
index 2aee0be..70f1b59 100644
--- a/gm/tileimagefilter.cpp
+++ b/gm/tileimagefilter.cpp
@@ -141,7 +141,7 @@
 private:
     sk_sp<SkImage> fBitmap, fCheckerboard;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp
index fe39744..a947f5b 100644
--- a/gm/tilemodes.cpp
+++ b/gm/tilemodes.cpp
@@ -160,7 +160,7 @@
 
 private:
     bool fPowerOfTwoSize;
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new TilingGM(true); )
 DEF_GM( return new TilingGM(false); )
diff --git a/gm/tilemodes_scaled.cpp b/gm/tilemodes_scaled.cpp
index 88d8c8b..e66ef23 100644
--- a/gm/tilemodes_scaled.cpp
+++ b/gm/tilemodes_scaled.cpp
@@ -159,7 +159,7 @@
 
 private:
     bool fPowerOfTwoSize;
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 constexpr int gWidth = 32;
diff --git a/gm/trickycubicstrokes.cpp b/gm/trickycubicstrokes.cpp
index faf5c09..a46413c 100644
--- a/gm/trickycubicstrokes.cpp
+++ b/gm/trickycubicstrokes.cpp
@@ -137,7 +137,7 @@
 
 private:
     SkPaint fStrokePaint;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new TrickyCubicStrokesGM; )
diff --git a/gm/typeface.cpp b/gm/typeface.cpp
index 437768b..33fe37a 100644
--- a/gm/typeface.cpp
+++ b/gm/typeface.cpp
@@ -146,7 +146,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM( return new TypefaceStylesGM(false); )
diff --git a/gm/variedtext.cpp b/gm/variedtext.cpp
index 37c6ac4..d96ee49 100644
--- a/gm/variedtext.cpp
+++ b/gm/variedtext.cpp
@@ -163,7 +163,7 @@
     SkPoint         fPositions[kCnt];
     SkRect          fClipRects[kCnt];
 
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 DEF_GM(return new VariedTextGM(false, false);)
diff --git a/gm/vertices.cpp b/gm/vertices.cpp
index f71c108..61ea6db 100644
--- a/gm/vertices.cpp
+++ b/gm/vertices.cpp
@@ -205,7 +205,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 
 /////////////////////////////////////////////////////////////////////////////////////
diff --git a/gm/video_decoder.cpp b/gm/video_decoder.cpp
index e6785b8..c2480f0 100644
--- a/gm/video_decoder.cpp
+++ b/gm/video_decoder.cpp
@@ -60,7 +60,7 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new VideoDecoderGM; )
 
diff --git a/gm/wacky_yuv_formats.cpp b/gm/wacky_yuv_formats.cpp
index d8f7a09..960d6a6 100644
--- a/gm/wacky_yuv_formats.cpp
+++ b/gm/wacky_yuv_formats.cpp
@@ -1484,7 +1484,7 @@
     sk_sp<SkColorSpace>        fTargetColorSpace;
     bool                       fGpuGeneratedImages = false;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
@@ -1674,7 +1674,7 @@
     sk_sp<SkImage> fImages[2][2];
     sk_sp<SkColorSpace> fTargetColorSpace;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new YUVMakeColorSpaceGM();)
@@ -1799,6 +1799,6 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new YUVSplitterGM; )
diff --git a/gm/widebuttcaps.cpp b/gm/widebuttcaps.cpp
index b2df5fe..423b9ad 100644
--- a/gm/widebuttcaps.cpp
+++ b/gm/widebuttcaps.cpp
@@ -78,7 +78,7 @@
 
 private:
     SkPaint fStrokePaint;
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM( return new WideButtCaps; )
diff --git a/gm/xfermodeimagefilter.cpp b/gm/xfermodeimagefilter.cpp
index 1f96dbb..5f69249 100644
--- a/gm/xfermodeimagefilter.cpp
+++ b/gm/xfermodeimagefilter.cpp
@@ -218,7 +218,7 @@
     SkBitmap        fBitmap;
     sk_sp<SkImage>  fCheckerboard;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index 06a2c7e..41ea5c3 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -294,6 +294,6 @@
     }
 
 private:
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 DEF_GM( return new XfermodesGM; )
diff --git a/gm/xfermodes2.cpp b/gm/xfermodes2.cpp
index 89f5e02..425d3b9 100644
--- a/gm/xfermodes2.cpp
+++ b/gm/xfermodes2.cpp
@@ -147,7 +147,7 @@
     sk_sp<SkShader> fSrc;
     sk_sp<SkShader> fDst;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/xfermodes3.cpp b/gm/xfermodes3.cpp
index 4ab9bf1..d478978 100644
--- a/gm/xfermodes3.cpp
+++ b/gm/xfermodes3.cpp
@@ -218,7 +218,7 @@
     sk_sp<SkShader> fBGShader;
     sk_sp<SkShader> fBmpShader;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/xform.cpp b/gm/xform.cpp
index d169017..5ed89c2 100644
--- a/gm/xform.cpp
+++ b/gm/xform.cpp
@@ -100,7 +100,7 @@
     }
 
 private:
-    typedef skiagm::GM INHERITED;
+    using INHERITED = skiagm::GM;
 };
 DEF_GM( return new XformGM; )
 
diff --git a/gm/ycbcrimage.cpp b/gm/ycbcrimage.cpp
index 99985b1..7ae5771 100644
--- a/gm/ycbcrimage.cpp
+++ b/gm/ycbcrimage.cpp
@@ -108,7 +108,7 @@
 
     sk_sp<SkImage> fYCbCrImage;
 
-    typedef GpuGM INHERITED;
+    using INHERITED = GpuGM;
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/yuvtorgbeffect.cpp b/gm/yuvtorgbeffect.cpp
index 6613f40..80d1887 100644
--- a/gm/yuvtorgbeffect.cpp
+++ b/gm/yuvtorgbeffect.cpp
@@ -149,7 +149,7 @@
     static constexpr SkScalar kTestPad = 10.f;
     static constexpr SkScalar kColorSpaceOffset = 36.f;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new YUVtoRGBEffect;)
@@ -260,7 +260,7 @@
     static constexpr SkScalar kTestPad = 10.f;
     static constexpr SkScalar kColorSpaceOffset = 36.f;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new YUVNV12toRGBEffect;)
@@ -380,7 +380,7 @@
 
     static constexpr SkScalar kTestPad = 10.f;
 
-    typedef GM INHERITED;
+    using INHERITED = GM;
 };
 
 DEF_GM(return new YUVtoRGBSubsetEffect;)
