diff options
author | Juan M Gómez <info@jmgomez.me> | 2023-05-17 10:44:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-17 11:44:42 +0200 |
commit | 02a10ec379d427f27f471d489247aa586078354b (patch) | |
tree | 8a92c0455785aa14320d8437a52691ee308451d8 /compiler/modulegraphs.nim | |
parent | 1314ea75169b877f458e8b4eb1455d5f6428227b (diff) | |
download | Nim-02a10ec379d427f27f471d489247aa586078354b.tar.gz |
Cpp Vfunctions draft (#21790)
* introduces virtual pragma, modifies proc def, prevents proc decl * marks virtual procs as infix * forward declare vfuncs inside the typedef * adds naked callConv to virtual * virtual proc error if not defined in the same top level scope as the type * first param is now this. extracts genvirtualheaderproc * WIP syntax * supports obj. Removes the need for the prefix * parameter count starts as this. Cleanup * clean up * sem tests * adds integration tests * uses constraint to store the virtual content * introduces genVirtualProcParams --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Diffstat (limited to 'compiler/modulegraphs.nim')
-rw-r--r-- | compiler/modulegraphs.nim | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/modulegraphs.nim b/compiler/modulegraphs.nim index 5cb6a1c34..de97ced99 100644 --- a/compiler/modulegraphs.nim +++ b/compiler/modulegraphs.nim @@ -79,6 +79,7 @@ type procInstCache*: Table[ItemId, seq[LazyInstantiation]] # A symbol's ItemId. attachedOps*: array[TTypeAttachedOp, Table[ItemId, LazySym]] # Type ID, destructors, etc. methodsPerType*: Table[ItemId, seq[(int, LazySym)]] # Type ID, attached methods + virtualProcsPerType*: Table[ItemId, seq[PSym]] # Type ID, attached virtual procs enumToStringProcs*: Table[ItemId, LazySym] emittedTypeInfo*: Table[string, FileIndex] |