Skip to content

feat: Rewrite module loader#193

Open
oliversalzburg wants to merge 2 commits intokellnerd:mainfrom
oliversalzburg:feat/provider-module-handling
Open

feat: Rewrite module loader#193
oliversalzburg wants to merge 2 commits intokellnerd:mainfrom
oliversalzburg:feat/provider-module-handling

Conversation

@oliversalzburg
Copy link

The previous approach suffers from provider instances losing their relation to the actual source class. This is caused by abstract base class methods that reduce instances to their base type in unexpected ways. This leads to type assumptions that ultimately don't hold up during runtime, and cause hard-to-analyze issues.

This change moves abstract methodology into the concrete types, composing merged types, and then using those composed types instead of base class references.

While this change generally seems to perform as expected and correctly (1 test is failing locally), it should likely be cleaned up to integrate better with the rest of the code structure and style. The change is primarily motivated to help illustrate the solution.

The previous approach suffers from provider instances losing their relation to the actual source class. This is caused by abstract base class methods that reduce instances to their base type in unexpected ways. This leads to type assumptions that ultimately don't hold up during runtime, and cause hard-to-analyze issues.

This change moves abstract methodology into the concrete types, composing merged types, and then using those composed types instead of base class references.

While this change generally seems to perform as expected and correctly (1 test is failing locally), it should likely be cleaned up to integrate better with the rest of the code structure and style. The change is primarily motivated to help illustrate the solution.
@kellnerd kellnerd added the meta Refactoring, tests and other tasks label Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

meta Refactoring, tests and other tasks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants