org.apache.bcel.verifier.structurals

## 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 and Description
    `Pass3bVerifier(Verifier owner, int method_no)` This class should only be instantiated by a Verifier.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 org.apache.bcel.verifier.PassVerifier

      `addMessage, getMessages, verify`

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### Pass3bVerifier

          public Pass3bVerifier(Verifier owner,
                                int method_no)

      This class should only be instantiated by a Verifier.
      See Also:
        `Verifier`

  - ### Method Detail

    - #### 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`
      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

Copyright © 2004–2022 The Apache Software Foundation. All rights reserved.