ML icon indicating copy to clipboard operation
ML copied to clipboard

Default parameter values of methods.

Open sifislag opened this issue 6 years ago • 1 comments

Hello,

Attempting to generate IR for methods with default parameters I get the following error:

com.ibm.wala.util.debug.UnimplementedError: TypeContext.cfg()
        at com.ibm.wala.util.debug.Assertions.UNREACHABLE(Assertions.java:55)
        at com.ibm.wala.cast.ir.translator.AstTranslator$TypeContext.cfg(AstTranslator.java:2746)
        at com.ibm.wala.cast.ir.translator.AstTranslator.doGlobalRead(AstTranslator.java:426)
        at com.ibm.wala.cast.python.ir.PythonCAstToIRTranslator.leaveVar(PythonCAstToIRTranslator.java:326)
        at com.ibm.wala.cast.python.ir.PythonCAstToIRTranslator.leaveVar(PythonCAstToIRTranslator.java:60)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visit(CAstVisitor.java:536)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visitEntities(CAstVisitor.java:188)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visitScopedEntities(CAstVisitor.java:139)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visitScopedEntities(CAstVisitor.java:131)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visitEntities(CAstVisitor.java:182)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visitScopedEntities(CAstVisitor.java:139)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visit(CAstVisitor.java:898)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visitChildren(CAstVisitor.java:407)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visitAllChildren(CAstVisitor.java:415)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visit(CAstVisitor.java:472)
        at com.ibm.wala.cast.tree.visit.CAstVisitor.visitEntities(CAstVisitor.java:222)
        at com.ibm.wala.cast.ir.translator.AstTranslator.walkEntities(AstTranslator.java:4794)
        at com.ibm.wala.cast.ir.translator.AstTranslator.translate(AstTranslator.java:4943)
        at com.ibm.wala.cast.loader.CAstAbstractModuleLoader.init(CAstAbstractModuleLoader.java:127)
        at com.ibm.wala.cast.loader.SingleClassLoaderFactory.getLoader(SingleClassLoaderFactory.java:42)
        at com.ibm.wala.ipa.cha.ClassHierarchy.<init>(ClassHierarchy.java:267)
        at com.ibm.wala.ipa.cha.ClassHierarchy.<init>(ClassHierarchy.java:209)
        at com.ibm.wala.ipa.cha.SeqClassHierarchyFactory.make(SeqClassHierarchyFactory.java:51)
        ...

Minimal example:


class MyC(object):
    def __init__(self, b=3):
        self.b = b

I think the problem is found in com.ibm.wala.cast/.../CAstVisitor.java line 186++ but I was not sure of what the appropriate way to fix it is.

Thanks, Sifis.

sifislag avatar Feb 08 '19 15:02 sifislag

I can't repo this on 6c85f992fb9de2975af080da684500edfee4f0ad.

khatchad avatar Jan 20 '23 22:01 khatchad