From 034837d7525ca135cdcdd0d2d61e5eb2223f6067 Mon Sep 17 00:00:00 2001 From: Mike Bierlee Date: Sun, 8 Jun 2014 14:52:53 +0200 Subject: [PATCH] Simplyfy reference to member --- source/poodinis/autowire.d | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/poodinis/autowire.d b/source/poodinis/autowire.d index cb0f47c..ee26a02 100644 --- a/source/poodinis/autowire.d +++ b/source/poodinis/autowire.d @@ -9,6 +9,8 @@ module poodinis.autowire; public import poodinis.container; +import std.typetuple; + debug { import std.stdio; import std.string; @@ -20,13 +22,14 @@ public void autowire(Type)(Container container, Type instance) { foreach (member ; __traits(derivedMembers, Type)) { foreach (attribute; mixin(`__traits(getAttributes, Type.` ~ member ~ `)`) ) { if (is(attribute : Autowire) && __traits(getMember, instance, member) is null){ + alias TypeTuple!(__traits(getMember, instance, member)) memberReference; debug { - auto autoWireType = typeid(typeof(__traits(getMember, instance, member))); + auto autoWireType = typeid(typeof(memberReference)); auto memberQualifier = typeid(Type).toString(); writeln(format("Autowire %s to %s.%s", autoWireType, memberQualifier, member)); } - __traits(getMember, instance, member) = container.resolve!(typeof(__traits(getMember, instance, member))); + __traits(getMember, instance, member) = container.resolve!(typeof(memberReference)); } } }