# Class Pass3bVerifier

java.lang.Object
org.apache.bcel.verifier.PassVerifier
org.apache.bcel.verifier.structurals.Pass3bVerifier

public final class Pass3bVerifier extends PassVerifier
This PassVerifier verifies a method of class file according to pass 3, so-called structural verification as described in The Java Virtual Machine Specification, 2nd edition. More detailed information is to be found at the do_verify() method's documentation.

See Also:
  - `do_verify()`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Pass3bVerifier(Verifier myOwner, int methodNo)`
  This class should only be instantiated by a Verifier.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `VerificationResult`
  `do_verify()`
  Pass 3b implements the data flow analysis as described in the Java Virtual Machine Specification, Second Edition.
  `int`
  `getMethodNo()`
  Returns the method number as supplied when instantiating.
  `void`
  `invalidReturnTypeError(Type returnedType, MethodGen m)`
  Throws an exception indicating the returned type is not compatible with the return type of the given method.

  ### Methods inherited from class PassVerifier

  `addMessage, getMessages, getMessagesList, verify`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Pass3bVerifier

    public Pass3bVerifier(Verifier myOwner, int methodNo)
    This class should only be instantiated by a Verifier.
    See Also:
      - `Verifier`

- ## Method Details

  - ### do_verify

    public VerificationResult do_verify()
    Pass 3b implements the data flow analysis as described in the Java Virtual Machine Specification, Second Edition. Later versions will use LocalVariablesInfo objects to verify if the verifier-inferred types and the class file's debug information (LocalVariables attributes) match [TODO].
    Specified by:
      `do_verify` in class `PassVerifier`
    Returns:
      The VerificationResult
    See Also:
      - `LocalVariablesInfo`
      - `Pass2Verifier.getLocalVariablesInfo(int)`

  - ### getMethodNo

    public int getMethodNo()
    Returns the method number as supplied when instantiating.

  - ### invalidReturnTypeError

    public void invalidReturnTypeError(Type returnedType, MethodGen m)
    Throws an exception indicating the returned type is not compatible with the return type of the given method.
    Parameters:
      `returnedType` - the type of the returned expression
      `m` - the method we are processing
    Throws:
      `StructuralCodeConstraintException` - always
    Since:
      6.0