CPP-975 "syntax error" on function-style cast of an expression to a primitive type
authorAleksey Zezukin <aleksey.zezukin@jetbrains.com>
Wed, 8 Oct 2014 17:19:48 +0000 (21:19 +0400)
committerAleksey Zezukin <aleksey.zezukin@jetbrains.com>
Mon, 13 Oct 2014 14:07:56 +0000 (18:07 +0400)
platform/core-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java

index 0e5323d2ecce8639fc3e70142c84ea47eaa1bfaa..e03244e0e0e99c2c2eef7aa565b367b107fce2a6 100644 (file)
@@ -847,6 +847,25 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder {
     clearCachedTokenType();
   }
 
+  /**
+   *
+   * @return true if there are error elements created and not dropped after marker was created
+   */
+  public boolean hasErrorsAfter(Marker marker) {
+    assert marker instanceof StartMarker;
+    int idx = myProduction.lastIndexOf(marker);
+    if (idx < 0) {
+      LOG.error("The marker must be added before checked for errors.");
+    }
+    for (int i = idx+1; i < myProduction.size(); ++i) {
+      ProductionMarker m = myProduction.get(i);
+      if (m instanceof ErrorItem || m instanceof DoneWithErrorMarker) {
+        return true;
+      }
+    }
+    return false;
+  }
+
   @SuppressWarnings({"SuspiciousMethodCalls"})
   public void drop(Marker marker) {
     final DoneMarker doneMarker = ((StartMarker)marker).myDoneMarker;