From a7664fcb02e31fac92c01a767a7da261d31cca5b Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Wed, 6 Apr 2022 16:29:18 +0200
Subject: [PATCH] Use covariant return types in non-generated clone methods

---
 src/main/java/org/sablecc/sablecc/CharSet.java    | 4 ++--
 src/main/java/org/sablecc/sablecc/IntSet.java     | 2 +-
 src/main/java/org/sablecc/sablecc/LR0Item.java    | 2 +-
 src/main/java/org/sablecc/sablecc/LR0ItemSet.java | 2 +-
 src/main/java/org/sablecc/sablecc/LR1Item.java    | 2 +-
 src/main/java/org/sablecc/sablecc/LR1ItemSet.java | 2 +-
 src/main/java/org/sablecc/sablecc/NFA.java        | 2 +-
 src/main/java/org/sablecc/sablecc/SymbolSet.java  | 2 +-
 8 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/sablecc/sablecc/CharSet.java b/src/main/java/org/sablecc/sablecc/CharSet.java
index e49bcea..e3faaa9 100644
--- a/src/main/java/org/sablecc/sablecc/CharSet.java
+++ b/src/main/java/org/sablecc/sablecc/CharSet.java
@@ -34,7 +34,7 @@ public class CharSet implements Cloneable
   }
 
   @Override
-  public Object clone()
+  public CharSet clone()
   {
     return new CharSet(intervals);
   }
@@ -183,7 +183,7 @@ public class CharSet implements Cloneable
     }
 
     @Override
-    public Object clone()
+    public Interval clone()
     {
       return new Interval(start, end);
     }
diff --git a/src/main/java/org/sablecc/sablecc/IntSet.java b/src/main/java/org/sablecc/sablecc/IntSet.java
index 120c707..503dc7f 100644
--- a/src/main/java/org/sablecc/sablecc/IntSet.java
+++ b/src/main/java/org/sablecc/sablecc/IntSet.java
@@ -82,7 +82,7 @@ public class IntSet
   }
 
   @Override
-  public Object clone()
+  public IntSet clone()
   {
     return new IntSet(this);
   }
diff --git a/src/main/java/org/sablecc/sablecc/LR0Item.java b/src/main/java/org/sablecc/sablecc/LR0Item.java
index df2f3f2..16d87c9 100644
--- a/src/main/java/org/sablecc/sablecc/LR0Item.java
+++ b/src/main/java/org/sablecc/sablecc/LR0Item.java
@@ -36,7 +36,7 @@ final class LR0Item implements Cloneable, Comparable
   }
 
   @Override
-  public Object clone()
+  public LR0Item clone()
   {
     return new LR0Item(production, position);
   }
diff --git a/src/main/java/org/sablecc/sablecc/LR0ItemSet.java b/src/main/java/org/sablecc/sablecc/LR0ItemSet.java
index 824097a..56fc438 100644
--- a/src/main/java/org/sablecc/sablecc/LR0ItemSet.java
+++ b/src/main/java/org/sablecc/sablecc/LR0ItemSet.java
@@ -108,7 +108,7 @@ final class LR0ItemSet implements Cloneable, Comparable
   }
 
   @Override
-  public Object clone()
+  public LR0ItemSet clone()
   {
     return new LR0ItemSet(this);
   }
diff --git a/src/main/java/org/sablecc/sablecc/LR1Item.java b/src/main/java/org/sablecc/sablecc/LR1Item.java
index 7f93dc2..a3471f0 100644
--- a/src/main/java/org/sablecc/sablecc/LR1Item.java
+++ b/src/main/java/org/sablecc/sablecc/LR1Item.java
@@ -21,7 +21,7 @@ final class LR1Item implements Cloneable, Comparable
   }
 
   @Override
-  public Object clone()
+  public LR1Item clone()
   {
     return new LR1Item(lr0Item, terminal);
   }
diff --git a/src/main/java/org/sablecc/sablecc/LR1ItemSet.java b/src/main/java/org/sablecc/sablecc/LR1ItemSet.java
index 68f3bab..983c7cb 100644
--- a/src/main/java/org/sablecc/sablecc/LR1ItemSet.java
+++ b/src/main/java/org/sablecc/sablecc/LR1ItemSet.java
@@ -162,7 +162,7 @@ final class LR1ItemSet implements Cloneable, Comparable
   }
 
   @Override
-  public Object clone()
+  public LR1ItemSet clone()
   {
     return new LR1ItemSet(this);
   }
diff --git a/src/main/java/org/sablecc/sablecc/NFA.java b/src/main/java/org/sablecc/sablecc/NFA.java
index cf8cce1..ba1475b 100644
--- a/src/main/java/org/sablecc/sablecc/NFA.java
+++ b/src/main/java/org/sablecc/sablecc/NFA.java
@@ -270,7 +270,7 @@ public class NFA implements Cloneable
   }
 
   @Override
-  public Object clone()
+  public NFA clone()
   {
     return new NFA(this);
   }
diff --git a/src/main/java/org/sablecc/sablecc/SymbolSet.java b/src/main/java/org/sablecc/sablecc/SymbolSet.java
index 576e1b6..d64dd83 100644
--- a/src/main/java/org/sablecc/sablecc/SymbolSet.java
+++ b/src/main/java/org/sablecc/sablecc/SymbolSet.java
@@ -204,7 +204,7 @@ final class SymbolSet implements Cloneable
   }
 
   @Override
-  public Object clone()
+  public SymbolSet clone()
   {
     return new SymbolSet(this);
   }
-- 
GitLab