You are viewing a plain text version of this content. The canonical link for it is here.
Posted to imperius-commits@incubator.apache.org by da...@apache.org on 2010/05/17 20:37:45 UTC

svn commit: r945356 - /incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/AnchorMethodInvokeAction.java

Author: dawood
Date: Mon May 17 20:37:45 2010
New Revision: 945356

URL: http://svn.apache.org/viewvc?rev=945356&view=rev
Log:
Add code to validateActualParameters() to handle parameters that are of type TypeInfo.INVALID.

Modified:
    incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/AnchorMethodInvokeAction.java

Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/AnchorMethodInvokeAction.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/AnchorMethodInvokeAction.java?rev=945356&r1=945355&r2=945356&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/AnchorMethodInvokeAction.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/AnchorMethodInvokeAction.java Mon May 17 20:37:45 2010
@@ -243,9 +243,18 @@ public class AnchorMethodInvokeAction im
             {
                 Argument formalArg = (Argument) formalParamTypeIt.next();
                 Expression actualParam = (Expression) actualParamIt.next();
+                TypeInfo actualType = actualParam.getType();
+                if (actualType.getType() == TypeConstants.INVALID && 
+                	actualParam instanceof PrimaryExpression) {
+                	PrimaryExpression pexp = (PrimaryExpression)actualParam;
+                	String className = symTab.getClassNameOfInstance(pexp.getclassNameOrInstanceVariableName());
+                	actualType = new TypeInfoImpl();
+                	actualType.setType(TypeConstants.referenceType);
+                	actualType.setReferenceTypeName(className);
+                }
                 
-                if (!TypeResolver.isTypeAssignableForEquality(formalArg
-                        .getType(), actualParam.getType())) 
+                if (!TypeResolver.isTypeAssignableForEquality(formalArg.getType(), 
+                		actualType)) 
                 {
                     throw new SPLException(
 							Messages
@@ -559,7 +568,7 @@ public class AnchorMethodInvokeAction im
 //                    	
                     	Argument arg = new ArgumentImpl(exp.getType().getType(),
 //	                            null, exp.isArray(), null);
-	                            null, flag, null);
+	                            null, flag, exp.getType().getReferenceTypeName());
 	                    arg.setValue(result);
 	                    parameterObjects.add(arg);
                     }