("rdfgeneric[%p] on <member> test, expected 'child' attribute to name a variable", this));
("xultemplate[%p] on <member> test, expected 'child' attribute to name a variable", this));
nsXULTemplateBuilder::CompileMemberCondition(Rule* aRule,                                             nsIContent* aCondition,                                             InnerNode* aParentNode,                                             TestNode** aResult){    // Compile a <member> condition, which must be of the form:    //    //   <member container="?var" child="?var" />    //    // container    nsAutoString container;    aCondition->GetAttribute(kNameSpaceID_None, nsXULAtoms::container, container);    if (container[0] != PRUnichar('?')) {        PR_LOG(gLog, PR_LOG_ALWAYS,               ("rdfgeneric[%p] on <member> test, expected 'container' attribute to name a variable", this));        return NS_OK;    }    PRInt32 containervar = aRule->LookupSymbol(container);    if (! containervar) {        mRules.CreateVariable(&containervar);        aRule->AddSymbol(container, containervar);    }    // child    nsAutoString child;    aCondition->GetAttribute(kNameSpaceID_None, nsXULAtoms::child, child);    if (child[0] != PRUnichar('?')) {        PR_LOG(gLog, PR_LOG_ALWAYS,               ("rdfgeneric[%p] on <member> test, expected 'child' attribute to name a variable", this));        return NS_OK;    }    PRInt32 childvar = aRule->LookupSymbol(child);    if (! childvar) {        mRules.CreateVariable(&childvar);        aRule->AddSymbol(child, childvar);    }    TestNode* testnode =        new RDFContainerMemberTestNode(aParentNode,                                       mDB,                                       mContainmentProperties,                                       containervar,                                       childvar);    if (! testnode)        return NS_ERROR_OUT_OF_MEMORY;    mRDFTests.Add(testnode);        *aResult = testnode;    return NS_OK;}