java.lang.IllegalArgumentException: Argument for @NotNull parameter 'endElement' of com/intellij/codeInspection/ProblemDescriptorBase.<init> must not be null
at com.intellij.codeInspection.ProblemDescriptorBase.$$$reportNull$$$0(ProblemDescriptorBase.java)
at com.intellij.codeInspection.ProblemDescriptorBase.<init>(ProblemDescriptorBase.java)
at intellij.haskell.inspection.HLintInspectionTool.$anonfun$checkFile$6(HLintInspectionTool.scala:96)
at scala.Option.map(Option.scala:242)
at intellij.haskell.inspection.HLintInspectionTool.$anonfun$checkFile$5(HLintInspectionTool.scala:74)
at scala.collection.Iterator$$anon$10.nextCur(Iterator.scala:585)
at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:599)
at scala.collection.immutable.List.prependedAll(List.scala:152)
at scala.collection.immutable.List$.from(List.scala:651)
at scala.collection.immutable.List$.from(List.scala:648)
at scala.collection.IterableOps$WithFilter.flatMap(Iterable.scala:888)
at intellij.haskell.inspection.HLintInspectionTool.checkFile(HLintInspectionTool.scala:71)
at com.intellij.codeInspection.LocalInspectionTool$1.visitFile(LocalInspectionTool.java:145)
at com.intellij.extapi.psi.PsiFileBase.accept(PsiFileBase.java:60)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65)
at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:56)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.runToolOnElements(LocalInspectionsPass.java:309)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$3(LocalInspectionsPass.java:275)
at com.intellij.codeInspection.ex.InspectionEventsKt.reportWhenInspectionFinished(inspectionEvents.kt:9)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$4(LocalInspectionsPass.java:270)
at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:156)
at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:148)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$5(LocalInspectionsPass.java:266)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:127)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:116)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$6(LocalInspectionsPass.java:266)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:136)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1097)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:92)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:688)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:634)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:63)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:104)
at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:83)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:167)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:178)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:83)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
The code that triggers it:
module Main where
main :: IO ()
main = do
input <- readInput
print $ sum2To2020 input
print $ sum3To2020 input
readInput :: IO [Int]
readInput = do
fileContent <- readFile "1.input" --[1721, 979, 366, 299, 675, 1456]
let fileLines = map read . lines $ fileContent
return fileLines
sum2To2020 :: [Int] -> Int
--sum2To2020 list = head [i * j | i <- list, j <- list, i + j == 2020]
sum2To2020 list = head [i * j | (i:j:[]) <- subsequencesOfSize 2 list, i + j == 2020]
sum3To2020 :: [Int] -> Int
--sum3To2020 list = head [i * j * k | i <- list, j <- list, k <- list, i + j + k == 2020]
sum3To2020 list = head [i * j * k | (i:j:k:[]) <- subsequencesOfSize 3 list, i + j + k == 2020]
chooseK :: Int -> [a] -> [[a]]
chooseK 0 _ = [[]]
chooseK _ [] = []
chooseK k (x:xs) = map (x:) (chooseK (k-1) xs) ++ chooseK k xs
subsequencesOfSize :: Int -> [a] -> [[a]]
subsequencesOfSize n xs = let l = length xs
in if n>l then [] else subsequencesBySize xs !! (l-n)
where
subsequencesBySize :: [a] -> [[[a]]]
subsequencesBySize [] = [[[]]]
subsequencesBySize (x:xs) = let next = subsequencesBySize xs -- [ s3, s2, s1 ]
prependHead = map (x:)
prependHeadToSubElements = map prependHead
withoutHead = [[]] ++ next -- [ [[]], s3, s2, s1 ]
withHead = prependHeadToSubElements next ++ [[]] -- [ x:s3, x:s2, x:s1, [[]] ]
in zipWith (++) withoutHead withHead
Plugin version: 1.0.0-beta85
Stacktrace:
The code that triggers it: