Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#2346 closed defect (fixed)

replaceable component with modifiers cause instantiation to fail

Reported by: Peter Aronsson Owned by: somebody
Priority: blocker Milestone: 1.9.0
Component: Frontend Version: trunk
Keywords: Cc: Henrik Tidefelt

Description

Consider the following model, based on an example in the Belts (commercial) library:

package B 
  connector Flange_b 
    Real phi; 
    flow Real tau;
  end  Flange_b;

  partial model Base 
   parameter Real pD;
   Flange_b f_b;
  end Base;

  model BaseImpl 
    parameter Real pD;
    Real y;
    Flange_b f_b;
  end BaseImpl;

  model WA 
    parameter Real diam = 1;
    replaceable Base cm(pD = diam);
    Real x = cm.f_b.phi;
  end WA;
 
end B;
model Test 
  B.WA w(redeclare B.BaseImpl cm);
end Test;

This results in the error message:

 Error: Variable cm.f_b.phi not found in scope B.WA

Now, if you change the declaration in WA to:

replaceable Base cm(pD = /*diam*/ 1 );

it works fine.

I've tested to check this model in Dymola and it works fine.

This is a blocker for supporing the Belts library.

Change History (2)

comment:1 by Adrian Pop, 11 years ago

Resolution: fixed
Status: newclosed

Fixed in revision r17326.

comment:2 by Henrik Tidefelt, 11 years ago

Cc: Henrik Tidefelt added
Note: See TracTickets for help on using tickets.