enumerate環境をカスタマイズし、以下のようなものを作りました。すると、左側に不自然な余白が生じてしまいます(画像を参照)。検索してみると、\labelwidth\leftmarginの値を変更する方法が見つかりましたが、改善はしませんでした。ラベルをむりやり置き換えているのがいけないのか、設定値が悪いのか、原因がわからず、修正できないでいます。なにかうまい方法はないでしょうか。

エンジンはplatex,dvipdfmxです。必要ならばパッケージを追加してもよいですが、なるべく使わず、また、inheritance環境の定義側のみの修正で実現できるのが理想です。

\documentclass{article}
\usepackage{showframe}
\usepackage{amssymb}
\usepackage{graphicx}

\newenvironment{inheritance}{%
\begin{enumerate}%
  % 
  \labelwidth=0pt%
  \leftmargin=0pt%
  %
  \def\makelabel##1{##1}%\def\makelabel##1{\hss\llap{##1}}% orignal
  \def\labelenumi{\hspace{\value{enumi}em}%
    \rotatebox[origin=c]{180}{$\Lsh$}}%
}{\end{enumerate}}

\begin{document}
\section{Class BufferedOutputStream}
The class implements a buffered output stream.
By setting up such an output stream,
an application can write bytes to the underlying output stream
without necessarily causing a call to the underlying system
for each byte written.
\subsection*{Inheritance}
\begin{inheritance}
  \item java.lang.Object
  \item java.io.OutputStream
  \item java.io.FilterOutputStream
  \item java.io.BufferedOutputStream
\end{inheritance}
\end{document}

compile result