     #log "exiting pattern early", pattern, "for", ctx.shouldDefer()
     return {}
 
-  if not matched.tea
-    return {}
+  if not matched.tea or isFake pattern
+    return isMalformed: yes
 
   # Properly bind types according to the pattern
   if pattern.tea

      return deferCurrentDefinition ctx, expression

    return jsNoop() unless expression.tea
    return jsNoop() if isMalformed

    if assigns.length is 0
      return malformed ctx, to, 'Not an assignable pattern'

    if @isDefining()
      throw new Error "already defining, forgot to leaveDefinition?"
    @_scope().definition =
      name: pattern and (not isFake pattern) and pattern.symbol
      id: pattern?.symbol and (@currentDeclarationId pattern.symbol) or @freshId()
      pattern: pattern
      inside: 0
