[abc-users] InternalCompilerError: Could not find a matching <init>

From: Eric Bodden <eric@bodden.de>
Date: Sat May 14 2005 - 13:33:42 BST

 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi. Using the (generated) aspect code below gives the error stated at
the bottom:

public privilegedaspect aspect F2 {
    private PropositionSet currentProps = new PropositionSet();
    
    private static final IFormulaFactory factory =
VerificationRuntime.getInstance().getFactory();
    
    private final String prop0 = "call(public
(AnnotationTest).new())";
    
    private final IFormula originalFormula =
factory.F(factory.Proposition(prop0, new java.lang.String[] { }));
    
    private IAFAState formula = originalFormula.negationNormalForm();
    
    public F2() {
VerificationRuntime.getInstance().registerFormula("F2",
originalFormula); }
    
    after() returning(AnnotationTest a):
    !within(F2) &&
      call(public (AnnotationTest).new()) {
        final WeakValuesMap bindings = new WeakValuesHashMap();
        bindings.put("a", a);
        currentProps.add(factory.Proposition("prop0", bindings));
    }
    
    after(): !within(F2) && call(public (AnnotationTest).new()) {
formula = formula.alternatingTransition(currentProps, new
java.util.HashMap()); }
}

Exception in thread "main" polyglot.util.InternalCompilerError: Could
not find a matching <init>
        at abc.soot.util.Restructure.findInitStmt(Restructure.java:122)
        at
abc.weaving.weaver.IntertypeAdjuster.weaveInitNopWithTag(IntertypeAdju
ster.java:1094)
        at
abc.weaving.weaver.IntertypeAdjuster.initialiseFields(IntertypeAdjuste
r.java:914)
        at
abc.weaving.weaver.IntertypeAdjuster.initialisers(IntertypeAdjuster.ja
va:887)
        at abc.main.Main.weave(Main.java:844)
        at abc.main.Main.run(Main.java:483)
        at abc.main.Main.main(Main.java:196)
        at junit.LTLParsingTest.testParsing(LTLParsingTest.java:28)
        at junit.LTLParsingTest.main(LTLParsingTest.java:34)

The problem seems to be the fireld declaration
private static final IFormulaFactory factory =
VerificationRuntime.getInstance().getFactory();

The "units" parameter to findInitStmt(Chain units) has this value:

[this := @this: rwth.i2.ltlrv.formulas.F1,
$r0 = staticinvoke <rwth.i2.ltlrv.management.VerificationRuntime:
rwth.i2.ltlrv.management.VerificationRuntime getInstance()>(),
$r1 = this.<rwth.i2.ltlrv.formulas.F1: rwth.i2.ltlrv.formula.IFormula
originalFormula>,
virtualinvoke $r0.<rwth.i2.ltlrv.management.VerificationRuntime: void
registerFormula(java.lang.Object,rwth.i2.ltlrv.formula.IFormula)>("F1"
, $r1),
return]

Can you see what causes this error?

Cheers,
Eric

- --
Eric Bodden
RWTH Aachen University
ICQ UIN: 12656220, Skype: ericbodden, PGP: BB465582
Website: http://www.bodden.de

-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0.3

iQA/AwUBQoXwJcwiFCm7RlWCEQIFDgCg0CpU2EMtt8+wJyfF2OJ/aY4T6uMAn34o
kCf/Y1tUtyWANg7/hUB6s+lc
=b47C
-----END PGP SIGNATURE-----
Received on Sat May 14 13:33:52 2005

This archive was generated by hypermail 2.1.8 : Sat May 14 2005 - 13:50:05 BST