diff --git a/internal/tsetse/rules/conformance_pattern_rule.ts b/internal/tsetse/rules/conformance_pattern_rule.ts
index add5286..707fffc 100644
--- a/internal/tsetse/rules/conformance_pattern_rule.ts
+++ b/internal/tsetse/rules/conformance_pattern_rule.ts
@@ -15,7 +15,7 @@
  * This is templated, mostly to ensure the nodes that have been matched
  * correspond to what the Fixer expects.
  */
-export class ConformancePatternRule<P extends PatternKind> implements
+export class ConformancePatternRule<P extends keyof MatchedNodeTypes> implements
     AbstractRule {
   readonly ruleName: string;
   readonly code = ErrorCode.CONFORMANCE_PATTERN;
@@ -27,23 +27,28 @@
     // that P is Config.kind.
     // tslint:disable-next-line:no-any See above.
     let engine: PatternEngine<any>;
+    // Formatter breaks the types, b/135552145
+    // clang-format off
     switch (config.kind) {
       case PatternKind.BANNED_PROPERTY_WRITE:
         engine = new PropertyWriteEngine(
-            config as Config<PatternKind.BANNED_PROPERTY_WRITE>, fixer);
+            config as Config<PatternKind.BANNED_PROPERTY_WRITE>,
+            fixer as Fixer<MatchedNodeTypes[PatternKind.BANNED_PROPERTY_WRITE]>);
         break;
       case PatternKind.BANNED_PROPERTY_NON_CONSTANT_WRITE:
         engine = new PropertyNonConstantWriteEngine(
             config as Config<PatternKind.BANNED_PROPERTY_NON_CONSTANT_WRITE>,
-            fixer);
+            fixer as Fixer<MatchedNodeTypes[PatternKind.BANNED_PROPERTY_NON_CONSTANT_WRITE]>);
         break;
       case PatternKind.BANNED_NAME:
-        engine =
-            new NameEngine(config as Config<PatternKind.BANNED_NAME>, fixer);
+        engine = new NameEngine(
+            config as Config<PatternKind.BANNED_NAME>,
+            fixer as Fixer<MatchedNodeTypes[PatternKind.BANNED_NAME]>);
         break;
       default:
         throw new Error('Config type not recognized, or not implemented yet.');
     }
+    // clang-format on
     this.ruleName = `conformance-pattern-${config.kind}`;
     this.engine = engine as PatternEngine<P>;
   }
diff --git a/internal/tsetse/util/pattern_config.ts b/internal/tsetse/util/pattern_config.ts
index 9ec75f7..e4dcc0d 100644
--- a/internal/tsetse/util/pattern_config.ts
+++ b/internal/tsetse/util/pattern_config.ts
@@ -80,13 +80,9 @@
   MANUALLY_REVIEWED
 }
 
-/** Maps the type of nodes that each `PatternType` produces. */
+/** Maps the type of nodes that each `PatternType` consumes. */
 export interface MatchedNodeTypes {
-  [PatternKind.BANNED_PROPERTY_WRITE]: ts.BinaryExpression&{
-    left: ts.PropertyAccessExpression;
-  };
-  [PatternKind.BANNED_PROPERTY_NON_CONSTANT_WRITE]: ts.BinaryExpression&{
-    left: ts.PropertyAccessExpression;
-  };
+  [PatternKind.BANNED_PROPERTY_WRITE]: ts.BinaryExpression;
+  [PatternKind.BANNED_PROPERTY_NON_CONSTANT_WRITE]: ts.BinaryExpression;
   [PatternKind.BANNED_NAME]: ts.Identifier;
 }
