Make resolve session be able to resolve class parameters

This commit is contained in:
Nikolay Krasko
2013-07-12 19:28:37 +04:00
parent f8e3275861
commit a69b2883ee
5 changed files with 44 additions and 1 deletions
@@ -278,10 +278,17 @@ public class ResolveSession implements KotlinCodeAnalyzer {
if (grandFather instanceof JetClass) {
JetClass jetClass = (JetClass) grandFather;
// This is a primary constructor parameter
ClassDescriptor classDescriptor = getClassDescriptor(jetClass);
if (parameter.getValOrVarNode() != null) {
getClassDescriptor(jetClass).getDefaultType().getMemberScope().getProperties(safeNameForLazyResolve(parameter));
classDescriptor.getDefaultType().getMemberScope().getProperties(safeNameForLazyResolve(parameter));
return getBindingContext().get(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, parameter);
}
else {
ConstructorDescriptor constructor = classDescriptor.getUnsubstitutedPrimaryConstructor();
assert constructor != null: "There are constructor parameters found, so a constructor should also exist";
constructor.getValueParameters();
return getBindingContext().get(BindingContext.VALUE_PARAMETER, parameter);
}
}
return super.visitParameter(parameter, data);
}