Support (multiple) inheritance by scope completion
commite4f2ed745238708673bef4c9a65e5e933f2215b2
authorJiří Techet <techet@gmail.com>
Wed, 20 Apr 2022 19:27:55 +0000 (20 21:27 +0200)
committerThomas Martitz <thomas.martitz@mailbox.org>
Sat, 27 Aug 2022 22:44:50 +0000 (28 00:44 +0200)
treef2dfb1b9c55480d45b182b9133a1e08e95abfe54
parent2cf2e87bda17de13fea495b965816b9c19aec920
Support (multiple) inheritance by scope completion

The code simply checks for inherited classes, strips unneeded stuff
like templates, etc. from inherited classes, detects multiple inheritance
by splitting the string using "," and calling tm_workspace_get_parents()
recursively on every parent class and collecting the returned tags.
The code limits the recursion depth to 10 to avoid possible inheritance
cycles and infinite recursion.

Also remove #if 0'd old code from TM implementing inheritance that we
kept for reference as we now have a better implementation.
src/tagmanager/tm_workspace.c