Generate argument expression instead of constructor for inline classes

This commit is contained in:
Mikhail Zarechenskiy
2018-02-04 23:44:16 +03:00
parent 928a342ace
commit 2536eb4d45
6 changed files with 77 additions and 0 deletions
@@ -2072,6 +2072,13 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
FunctionDescriptor descriptor = accessibleFunctionDescriptor(resolvedCall);
if (descriptor instanceof ConstructorDescriptor) {
if (InlineClassesUtilsKt.isInlineClass(descriptor.getContainingDeclaration())) {
KtValueArgument valueArgument = CollectionsKt.firstOrNull(expression.getValueArguments());
if (valueArgument == null) return null;
return gen(valueArgument.getArgumentExpression());
}
return generateNewCall(expression, resolvedCall);
}