// hierarchy will become more complex, as the whole definition resolution code needs to be updated
assert (containingScope.getDefinition() instanceof ClassDefinition) : "contingent definitions containing scope must be a Class";
ClassDefinition containingType = (ClassDefinition)containingScope.getDefinition();
String contingentName = definition.getBaseName();
for (ITypeDefinition type : definition.isStatic() ? containingType.staticTypeIterable(project, false) : containingType.typeIteratable(project, false))
{
ASScope typeScope = (ASScope)type.getContainedScope();
List<IDefinition> defs = new LinkedList<IDefinition>();
typeScope.getLocalProperty(project, defs, contingentName, null, false);
// found a non contingent definition, so this contingent def is