Repository: intellij-rust/intellij-rust
Issue: java.lang.NullPointerException at org.rust.grazie.RsGrammarCheckingStrategy.isMyContextRoot

## Problem description
```
Caused by: java.lang.NullPointerException
	at org.rust.lang.core.psi.ext.PsiElementKt.getElementType(PsiElement.kt:80)
	at org.rust.grazie.RsGrammarCheckingStrategy.getContextRootTextDomain(RsGrammarCheckingStrategy.kt:56)
	at org.rust.grazie.RsGrammarCheckingStrategy.isMyContextRoot(RsGrammarCheckingStrategy.kt:25)
	at com.intellij.grazie.text.TextExtractor.doExtract(TextExtractor.java:256)
	at com.intellij.grazie.text.TextExtractor.obtainContents(TextExtractor.java:159)
	at com.intellij.grazie.text.TextExtractor.findTextsAt(TextExtractor.java:122)
	at com.intellij.grazie.text.TextExtractor.findUniqueTextsAt(TextExtractor.java:231)
	at 
```

## Steps to reproduce
not 100% reproducible, no user effects 

1. Type something (e.g. "v")
2. Wait for a moment
3. Try to remove

## Actual Results

<details>

```

<summary>Exception</summary>
java.lang.NullPointerException
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:564)
	at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:591)
	at java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:672)
	at com.intellij.concurrency.JobLauncherImpl.processQueue(JobLauncherImpl.java:360)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.processInOrder(InspectionRunner.java:300)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.visitElements(InspectionRunner.java:275)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$inspect$4(InspectionRunner.java:129)
	at com.intellij.codeInspection.InspectionEngine.withSession(InspectionEngine.java:226)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.inspect(InspectionRunner.java:116)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.collectInformationWithProgress(LocalInspectionsPass.java:117)
	at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:97)
	at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:57)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:405)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1086)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:397)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:591)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:666)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:622)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:590)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:396)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:372)
	at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:174)
	at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:370)
	at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:181)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.NullPointerException
	at org.rust.lang.core.psi.ext.PsiElementKt.getElementType(PsiElement.kt:80)
	at org.rust.grazie.RsGrammarCheckingStrategy.getContextRootTextDomain(RsGrammarCheckingStrategy.kt:56)
	at org.rust.grazie.RsGrammarCheckingStrategy.isMyContextRoot(RsGrammarCheckingStrategy.kt:25)
	at com.intellij.grazie.text.TextExtractor.doExtract(TextExtractor.java:256)
	at com.intellij.grazie.text.TextExtractor.obtainContents(TextExtractor.java:159)
	at com.intellij.grazie.text.TextExtractor.findTextsAt(TextExtractor.java:122)
	at com.intellij.grazie.text.TextExtractor.findUniqueTextsAt(TextExtractor.java:231)
	at com.intellij.grazie.ide.inspection.detection.LanguageDetectionInspection$buildVisitor$1.visitElement(LanguageDetectionInspection.kt:54)
	at com.intellij.psi.impl.source.tree.LeafPsiElement.accept(LeafPsiElement.java:208)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$9(InspectionRunner.java:324)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1086)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$10(InspectionRunner.java:332)
	at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:174)
	at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$11(InspectionRunner.java:338)
	at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:159)
	at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:151)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$12(InspectionRunner.java:301)
	at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:130)
	at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:119)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$13(InspectionRunner.java:301)
	at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.lambda$call$0(JobLauncherImpl.java:299)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:591)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:666)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:622)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:590)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.call(JobLauncherImpl.java:284)
	at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.call(JobLauncherImpl.java:272)
	at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1428)
	... 5 more
	
```

</details>

Changed files:
grazie/src/main/kotlin/org/rust/grazie/RsGrammarCheckingStrategy.kt

diff --git a/grazie/src/main/kotlin/org/rust/grazie/RsGrammarCheckingStrategy.kt b/grazie/src/main/kotlin/org/rust/grazie/RsGrammarCheckingStrategy.kt
index 4b00c58ec..8313e2b95 100644
--- a/grazie/src/main/kotlin/org/rust/grazie/RsGrammarCheckingStrategy.kt
+++ b/grazie/src/main/kotlin/org/rust/grazie/RsGrammarCheckingStrategy.kt
@@ -16,7 +16,7 @@ import com.intellij.grazie.utils.LinkedSet
 import com.intellij.lang.injection.InjectedLanguageManager
 import com.intellij.psi.PsiElement
 import org.rust.lang.core.psi.*
-import org.rust.lang.core.psi.ext.elementType
+import org.rust.lang.core.psi.ext.elementTypeOrNull
 import org.rust.lang.doc.psi.RsDocComment
 
 class RsGrammarCheckingStrategy : GrammarCheckingStrategy {
@@ -53,7 +53,7 @@ class RsGrammarCheckingStrategy : GrammarCheckingStrategy {
     }
 
     override fun getContextRootTextDomain(root: PsiElement): TextDomain {
-        return when (root.elementType) {
+        return when (root.elementTypeOrNull) {
             in RS_ALL_STRING_LITERALS -> TextDomain.LITERALS
             in RS_DOC_COMMENTS -> TextDomain.DOCS
             in RS_REGULAR_COMMENTS -> TextDomain.COMMENTS
@@ -62,7 +62,7 @@ class RsGrammarCheckingStrategy : GrammarCheckingStrategy {
     }
 
     override fun getRootsChain(root: PsiElement): List<PsiElement> {
-        return if (root.elementType in RS_REGULAR_COMMENTS) {
+        return if (root.elementTypeOrNull in RS_REGULAR_COMMENTS) {
             StrategyUtils.getNotSoDistantSiblingsOfTypes(this, root, RS_REGULAR_COMMENTS_SET).toList()
         } else {
             super.getRootsChain(root)