Move util backend function isNamedFun && isNamedFunOrLambda to frontend

This commit is contained in:
Stanislav Erokhin
2015-02-24 15:36:06 +03:00
parent fa9ca54e78
commit 6fb8af1dda
11 changed files with 88 additions and 46 deletions
@@ -278,13 +278,25 @@ public class DescriptorResolver {
trace.report(FUNCTION_DECLARATION_WITH_NO_NAME.on(function));
}
final SimpleFunctionDescriptorImpl functionDescriptor = SimpleFunctionDescriptorImpl.create(
containingDescriptor,
annotations,
function.getNameAsSafeName(),
CallableMemberDescriptor.Kind.DECLARATION,
toSourceElement(function)
);
final SimpleFunctionDescriptorImpl functionDescriptor;
if (nameCanBeOmitted) { // todo remove this hack
functionDescriptor = new FunctionExpressionDescriptor(
containingDescriptor,
annotations,
function.getNameAsSafeName(),
CallableMemberDescriptor.Kind.DECLARATION,
toSourceElement(function)
);
}
else {
functionDescriptor = SimpleFunctionDescriptorImpl.create(
containingDescriptor,
annotations,
function.getNameAsSafeName(),
CallableMemberDescriptor.Kind.DECLARATION,
toSourceElement(function)
);
}
WritableScope innerScope = new WritableScopeImpl(scope, functionDescriptor, new TraceBasedRedeclarationHandler(trace),
"Function descriptor header scope");
innerScope.addLabeledDeclaration(functionDescriptor);