Introduce TParamMode (pmNone, pmVar, pmRecordValue, pmStaticArrayValue) on TIdentExpr so the semantic pass records the precise param-slot classification once instead of merging three cases into a Boolean. The QBE backend treats all three modes identically (ParamMode <> pmNone), preserving existing semantics. The native x86-64 and LLVM backends can now dispatch on the enum directly instead of re-deriving the distinction from Sym.Kind and TypeDesc.Kind at every reader site. Other IsVarParam fields (TFieldAccessExpr, TMethodCallExpr, TAssignment, TMethodParam, TMethodCallStmt) are unchanged. Based on Andrew Haines' proposal and patch (blaise_llvm d16f877). |
||
|---|---|---|
| .. | ||
| bif-coverage | ||
| kanban | ||
| migration-analyser | ||
| .gitkeep | ||