do not rely on presence of function body to compute function modifiers

this fixes generation of stubs
This commit is contained in:
Stepan Koltsov
2012-03-03 01:10:59 +04:00
parent 1e92594e99
commit c47934b3cf
@@ -113,7 +113,10 @@ public class FunctionCodegen {
if (isStatic || kind == OwnerKind.TRAIT_IMPL)
flags |= ACC_STATIC;
boolean isAbstract = !isStatic && !(kind == OwnerKind.TRAIT_IMPL) && (bodyExpressions == null || CodegenUtil.isInterface(functionDescriptor.getContainingDeclaration()));
boolean isAbstract = (
functionDescriptor.getModality() == Modality.ABSTRACT
|| CodegenUtil.isInterface(functionDescriptor.getContainingDeclaration())
) && !isStatic && kind != OwnerKind.TRAIT_IMPL;
if (isAbstract) flags |= ACC_ABSTRACT;
final MethodVisitor mv = v.newMethod(fun, flags, jvmSignature.getAsmMethod().getName(), jvmSignature.getAsmMethod().getDescriptor(), jvmSignature.getGenericsSignature(), null);