original_string: public function expectExplicit($expectedTag = null): ExplicitTagging
      {
          $el = $this;
          if (!$el instanceof ExplicitTagging) {
              throw new \UnexpectedValueException(
                  "Element doesn't implement explicit tagging.");
          }
          if (isset($expectedTag)) {
              $el->expectTagged($expectedTag);
          }
          return $el;
      }
code: public function expectExplicit($expectedTag = null): ExplicitTagging
      {
          $el = $this;
          if (!$el instanceof ExplicitTagging) {
              throw new \UnexpectedValueException(
                  "Element doesn't implement explicit tagging.");
          }
          if (isset($expectedTag)) {
              $el->expectTagged($expectedTag);
          }
          return $el;
      }
code_tokens: public function expectExplicit ( $ expectedTag = null ) : ExplicitTagging { $ el = $ this ; if ( ! $ el instanceof ExplicitTagging ) { throw new \ UnexpectedValueException ( "Element doesn't implement explicit tagging." ) ; } if ( isset ( $ expectedTag ) ) { $ el -> expectTagged ( $ expectedTag ) ; } return $ el ; }
docstring: Check whether element supports explicit tagging.
  
  @param int|null $expectedTag Optional outer tag expectation
  @throws \UnexpectedValueException If expectation fails
  @return ExplicitTagging
docstring_tokens: Check whether element supports explicit tagging .