- TSymbol gains ConstString field; AnalyseConstDecls stores CD.StrVal - TIdentExpr gains ConstString and NoArgFuncDecl fields - AnalyseIdent propagates ConstString to identifier exprs - EmitExpr: string constants emit 'l copy $__sN' not 'w copy 0' - IsNoArgFuncCall now set unconditionally for any skFunction with a return type; NoArgFuncDecl is looked up from FProcIndex so codegen can emit a proper call $FuncName() for user-defined zero-arg functions - EmitExpr no-arg call path forwards NoArgFuncDecl as ResolvedDecl so EmitFuncCall finds the declaration instead of falling through to builtin dispatch and raising ECodeGenError - TFieldAccessExpr IsMethodCall/PropRead/IsClassAccess paths use VarRef(RecordName, IsGlobal) instead of hardcoded %%_var_ prefix, fixing global-variable receivers such as Source.GetText |
||
|---|---|---|
| .. | ||
| integration | ||
| blaise-compiler.pas | ||
| phase2_milestone.pas | ||
| phase3_milestone.pas | ||