<!-- 🚨 STOP 🚨 𝗦𝗧𝗢𝗣 🚨 𝑺𝑻𝑶𝑷 🚨 Half of all issues filed here are duplicates, answered in the FAQ, or not appropriate for the bug tracker. Even if you think you've found a *bug*, please read the FAQ first, especially the Common "Bugs" That Aren't Bugs section! Please help us by doing the following steps before logging an issue: * Search: https://github.com/Microsoft/TypeScript/search?type=Issues * Read the FAQ: https://github.com/Microsoft/TypeScript/wiki/FAQ Please fill in the *entire* template below. --> <!-- Please try to reproduce the issue with the latest published version. It may have already been fixed. For npm: `typescript@next` This is also the 'Nightly' version in the playground: http://www.typescriptlang.org/play/?ts=Nightly --> **TypeScript Version:** 3.9.1-rc, 4.0.0-dev.20200428 <!-- Search terms you tried before logging this (so others can find this issue more easily) --> **Search Terms:** `cannot reference identifier` **Code** ```ts function test0({ a = 0, b = a } = {}) { return { a, b }; } function test1({ c: { a = 0, b = a } = {} } = {}) { return { a, b }; } ``` **Expected behavior:** Doesn't fail **Actual behavior:** Fails with `Parameter '{ a = 0, b = a }' cannot reference identifier 'a' declared after it.(2373)` **Playground Link:** https://www.typescriptlang.org/play/?noImplicitAny=false&ts=4.0.0-dev.20200428&ssl=8&ssc=1&pln=1&pc=1#code/GYVwdgxgLglg9mABFApgZygBgBQG9ECGiAvIpgDSIBGJhiAvrbvQJSK4BQi3iATilBC8k+ApRr0A3B3ocOoSLATJ0UAIx5EEAFzs6pCtVpFGpZgyat2XHv0HC9Yo1JkcgA **Related Issues:** #38130