public Type execute() {
                    Method readMethod = node.getReadMethod();
                    String lookupName = node.getLookupName().getName();

                    if (expr.getType().getObjectClass().isArray() &&
                        lookupName.equals("length")) {

                        mBuilder.arrayLength();
                        return Type.INT_TYPE;
                    }
                    else {
                        if (Modifier.isStatic(readMethod.getModifiers())) {
                            // Discard the object to call method on.
                            mBuilder.pop();
                        }

                        mBuilder.invoke(readMethod);
                        return new Type(readMethod.getReturnType(),
                                        readMethod.getGenericReturnType());
                    }
                }