Service service = msg.parent();
StringTokenizer path = new StringTokenizer( arg.image, "." );
String name = path.nextToken();
Parameter p = msg.getParameter( name );
if (p != null)
{
// it's a parameter, so type of p must be a struct...
p = getField( service, p, path );
if (p == null)
throw new ParseException( String.format(
"Authorize method %s arg %d name does not resolve to a field (%s) at line %d",
method.image, argNo+1, arg, lineno() ) );
Named<?> pt = p.type().getNamed( service );
Named<?> paramType = param.type().getNamed( service );
if (pt == paramType)
return;
throw typeMismatch( param, arg, argNo );