@@ -2762,13 +2762,15 @@ public Expression determinate(Vector arguments)
27622762 }
27632763
27642764 public boolean parametersMatch (Vector pars )
2765- { if (pars .size () == parameters .size ())
2765+ { if (pars == null || parameters == null ) { return false ; }
2766+ if (pars .size () == parameters .size ())
27662767 { return true ; }
27672768 return false ;
27682769 } // and check the types
27692770
27702771 public boolean parameterMatch (Vector pars )
2771- { if (pars .size () != parameters .size ())
2772+ { if (pars == null || parameters == null ) { return false ; }
2773+ if (pars .size () != parameters .size ())
27722774 { return false ; }
27732775 for (int i = 0 ; i < parameters .size (); i ++)
27742776 { Attribute par = (Attribute ) parameters .get (i );
@@ -2782,7 +2784,8 @@ public boolean parameterMatch(Vector pars)
27822784 } // and check the types
27832785
27842786 public void setFormalParameters (Vector pars )
2785- { for (int i = 0 ; i < parameters .size () && i < pars .size (); i ++)
2787+ { if (pars == null || parameters == null ) { return ; }
2788+ for (int i = 0 ; i < parameters .size () && i < pars .size (); i ++)
27862789 { Attribute par = (Attribute ) parameters .get (i );
27872790 Expression arg = (Expression ) pars .get (i );
27882791 arg .formalParameter = par ;
@@ -2791,8 +2794,9 @@ public void setFormalParameters(Vector pars)
27912794
27922795 public Expression substituteParameters (Expression e , Vector arguments )
27932796 { if (e == null )
2794- { return new BasicExpression (true ); }
2797+ { return new BasicExpression (true ); }
27952798 Expression res = (Expression ) e .clone ();
2799+ if (parameters == null ) { return res ; }
27962800 for (int i = 0 ; i < parameters .size (); i ++)
27972801 { if (i < arguments .size ())
27982802 { Expression arg = (Expression ) arguments .get (i );
@@ -2805,8 +2809,9 @@ public Expression substituteParameters(Expression e, Vector arguments)
28052809
28062810 public Expression substituteParametersPre (Vector arguments )
28072811 { if (pre == null )
2808- { return new BasicExpression (true ); }
2812+ { return new BasicExpression (true ); }
28092813 Expression res = (Expression ) pre .clone ();
2814+ if (parameters == null ) { return res ; }
28102815 for (int i = 0 ; i < parameters .size (); i ++)
28112816 { if (i < arguments .size ())
28122817 { Expression arg = (Expression ) arguments .get (i );
@@ -6740,8 +6745,9 @@ else if (entity != null && entity.hasFeature(be.left + ""))
67406745 else // declare it
67416746 { Type t = be .left .getType ();
67426747 JOptionPane .showMessageDialog (null ,
6743- "Declaring new local variable " + be .left + " in:\n " + this ,
6748+ "Declaring new local variable " + be .left + " : " + t + " in:\n " + this ,
67446749 "Implicit variable declaration" , JOptionPane .INFORMATION_MESSAGE );
6750+ if (t == null ) { t = new Type ("OclAny" , null ); }
67456751 CreationStatement cs = new CreationStatement (t .getJava (), be .left + "" );
67466752 cs .setInstanceType (t );
67476753 cs .setElementType (t .getElementType ());
0 commit comments