Option<Type> aClass = canComplete
? evaluator.typeOfExpression(packagePart.substring(0, beginIndex - 1))
: none(Type.class);
if (aClass.isDefined()) {
ClassReflection classReflection = reflectionOf(aClass.get());
Sequence<MemberReflection> join = Sequences.empty(MemberReflection.class)
.join(classReflection.declaredFields())
.join(classReflection.declaredMethods());
Sequence<CompletionCandidate> candidates = join
.filter(isPublic().and(not(isStatic())))
.groupBy(candidateName())
.map(candidate())