       return deferCurrentDefinition ctx, expression
 
     return jsNoop() unless expression.tea
-    return jsNoop() if isMalformed
+    return jsNoop() if isMalformed or isFake expression
 
     if assigns.length is 0
       return malformed ctx, to, 'Not an assignable pattern'

    #log "exiting pattern early", pattern, "for", ctx.shouldDefer()
    return {}

  if not matched.tea
    return {}

  # Properly bind types according to the pattern
  if pattern.tea

    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
