Skip to content

initializedBy doesn't work with interfaces #50

Description

@vpanteleev-sym
interface I { /* ... */  }
// Hidden, in another module: class C : I { ... }
I makeC(); // Implementation is in another module

void main() {
  auto container = new shared DependencyContainer;
  container.register!I.initializedBy(() => makeC());
}

Compilation fails:

.../poodinis/source/poodinis/container.d(174,39): Error: cannot implicitly convert expression `typeid(I)` of type `object.TypeInfo_Interface` to `object.TypeInfo_Class`
.../poodinis/source/poodinis/container.d(187,36): Error: template instance `AutowiredRegistration!(I)` does not match template declaration `AutowiredRegistration(RegistrationType : Object)`
.../poodinis/source/poodinis/container.d(150,53): Error: template instance `poodinis.container.DependencyContainer.register!(I, I)` error instantiating

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions