Phpinspectionsea: Missing 7.1 inspection - String to array

Created on 25 Jul 2017  路  18Comments  路  Source: kalessil/phpinspectionsea

The following isn't caught anywhere but will throw an exception in PHP 7.1.

$x = '';
$x[] = 1;

bug / false-positive fixed

All 18 comments

Thanks for reporting @iakoder, that's a good idea. We'll implement it in one of the upcoming releases.

@iakoder : what is the exception message in this case?

Thanks :)

The exception is an Error and the message is "[] operator not supported for strings"

This should be added to Probable bugs | Array and string offset validity inspection

That's a good idea, thanks, @b1rdex.

Note for myself: the inspection is deactivated by default -> better release notes entry for this change

Implemented

Hmmm, I just revisited this under

PhpStorm 2018.1 EAP
Build #PS-181.4203.107, built on March 14, 2018
PhpStorm EAP User
Expiration date: April 13, 2018
JRE: 1.8.0_152-release-1136-b20 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.13.2

With Php Inspections (EA Extended)
2.3.18

Is Php Inspections 2.3.18 compatible with PhpStorm 2018.1 EAP (Preview 1)?

With all inspections turned on, including "Unsupported string offset operations"

I don't get any inspection issues with the following code.

<?php
declare( strict_types = 1 );

/**
 *
 */
function foo() {
    /**
     * @var string $x
     */
    $x = 'Foo';
    $x[] = 'Bar';
    echo 'Done';
}

foo();

But there are "one or two" errors in the PhpStorm log

2018-03-15 17:14:52,118 [2221182]  ERROR - aemon.impl.PassExecutorService - Lexer has been advanced 100 times more than the amount of lexeme 167 
com.jetbrains.php.lang.parser.PhpParserException: Lexer has been advanced 100 times more than the amount of lexeme 167
    at com.jetbrains.php.lang.parser.PhpPsiBuilder.getTokenType(PhpPsiBuilder.java:97)
    at com.jetbrains.php.lang.parser.PhpPsiBuilder.compare(PhpPsiBuilder.java:31)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:285)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:48)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:48)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariableOrFunctionCall(Variable.java:150)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parse(Variable.java:39)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrimaryExpression.parse(PrimaryExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.PostfixExpression.parse(PostfixExpression.java:13)
    at com.jetbrains.php.lang.parser.parsing.expressions.UnaryExpression.parse(UnaryExpression.java:82)
    at com.jetbrains.php.lang.parser.parsing.expressions.InstanceofExpression.parse(InstanceofExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LogicalNotExpression.parse(LogicalNotExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.MultiplicativeExpression.parse(MultiplicativeExpression.java:24)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.AdditiveExpression.parse(AdditiveExpression.java:23)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.ShiftExpression.parse(ShiftExpression.java:19)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.RelationalExpression.parse(RelationalExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.EqualityExpression.parse(EqualityExpression.java:18)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitAndExpression.parse(BitAndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitXorExpression.parse(BitXorExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitOrExpression.parse(BitOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:53)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:29)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:53)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.UnaryExpression.parse(UnaryExpression.java:80)
    at com.jetbrains.php.lang.parser.parsing.expressions.InstanceofExpression.parse(InstanceofExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LogicalNotExpression.parse(LogicalNotExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.MultiplicativeExpression.parse(MultiplicativeExpression.java:24)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.AdditiveExpression.parse(AdditiveExpression.java:23)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.ShiftExpression.parse(ShiftExpression.java:19)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.RelationalExpression.parse(RelationalExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.EqualityExpression.parse(EqualityExpression.java:18)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitAndExpression.parse(BitAndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitXorExpression.parse(BitXorExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitOrExpression.parse(BitOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:53)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.UnaryExpression.parse(UnaryExpression.java:80)
    at com.jetbrains.php.lang.parser.parsing.expressions.InstanceofExpression.parse(InstanceofExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LogicalNotExpression.parse(LogicalNotExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.MultiplicativeExpression.parse(MultiplicativeExpression.java:24)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.AdditiveExpression.parse(AdditiveExpression.java:23)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.ShiftExpression.parse(ShiftExpression.java:19)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.RelationalExpression.parse(RelationalExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.EqualityExpression.parse(EqualityExpression.java:18)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitAndExpression.parse(BitAndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitXorExpression.parse(BitXorExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitOrExpression.parse(BitOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:156)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:48)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.Statement.parse(Statement.java:85)
    at com.jetbrains.php.lang.parser.parsing.StatementList.parseTopStatement(StatementList.java:133)
    at com.jetbrains.php.lang.parser.parsing.StatementList.parseBlockDeep(StatementList.java:94)
    at com.jetbrains.php.lang.parser.PhpPsiParser.parseBlockDeep(PhpPsiParser.java:35)
    at com.jetbrains.php.lang.parser.PhpElementTypes$GroupStatementElementType.parseContents(PhpElementTypes.java:198)
    at com.intellij.psi.impl.source.tree.LazyParseableElement.lambda$ensureParsed$0(LazyParseableElement.java:193)
    at com.intellij.psi.impl.DebugUtil.performPsiModification(DebugUtil.java:544)
    at com.intellij.psi.impl.source.tree.LazyParseableElement.ensureParsed(LazyParseableElement.java:192)
    at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:247)
    at com.intellij.psi.impl.source.tree.LazyParseablePsiElement.getFirstChild(LazyParseablePsiElement.java:90)
    at com.jetbrains.php.lang.psi.elements.impl.PhpPsiElementImpl.getChildren(PhpPsiElementImpl.java:128)
    at com.jetbrains.php.lang.psi.elements.impl.GroupStatementImpl.getChildren(GroupStatementImpl.java:50)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.scanTree(FunctionImpl.java:264)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getInferredType(FunctionImpl.java:199)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getLocalType(FunctionImpl.java:160)
    at com.jetbrains.php.lang.psi.elements.impl.MethodImpl.getLocalType(MethodImpl.java:244)
    at com.jetbrains.php.lang.psi.stubs.PhpMethodElementType.createStub(PhpMethodElementType.java:37)
    at com.jetbrains.php.lang.psi.stubs.PhpMethodElementType.createStub(PhpMethodElementType.java:19)
    at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.a(DefaultStubBuilder.java:113)
    at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.visitNode(DefaultStubBuilder.java:88)
    at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.buildStubTree(DefaultStubBuilder.java:83)
    at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTreeFor(DefaultStubBuilder.java:58)
    at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTree(DefaultStubBuilder.java:39)
    at com.intellij.psi.stubs.StubTreeBuilder.buildStubTree(StubTreeBuilder.java:84)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.a(StubUpdatingIndex.java:232)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:897)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.map(StubUpdatingIndex.java:214)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.map(StubUpdatingIndex.java:197)
    at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:273)
    at com.intellij.util.indexing.VfsAwareMapReduceIndex.calculateUpdateData(VfsAwareMapReduceIndex.java:98)
    at com.intellij.util.indexing.impl.MapReduceIndex.update(MapReduceIndex.java:213)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1651)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1579)
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:523)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1538)
    at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1526)
    at com.intellij.util.indexing.FileBasedIndexImpl.processRefreshedFile(FileBasedIndexImpl.java:1505)
    at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1669)
    at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1666)
    at com.intellij.util.indexing.UpdateTask.a(UpdateTask.java:76)
    at com.intellij.util.indexing.UpdateTask.processAll(UpdateTask.java:46)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1688)
    at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:719)
    at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:685)
    at com.intellij.psi.stubs.StubIndexImpl.a(StubIndexImpl.java:330)
    at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:307)
    at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:296)
    at org.angularjs.index.AngularIndexUtil.multiResolve(AngularIndexUtil.java:78)
    at org.angularjs.index.AngularIndexUtil.resolve(AngularIndexUtil.java:68)
    at org.angularjs.index.AngularIndexUtil.lambda$getAngularJSVersion$3(AngularIndexUtil.java:174)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:49)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:222)
    at com.intellij.psi.impl.PsiCachedValue.getValueWithLock(PsiCachedValue.java:60)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:38)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:87)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:118)
    at org.angularjs.index.AngularIndexUtil.getAngularJSVersion(AngularIndexUtil.java:171)
    at org.angularjs.index.AngularIndexUtil.hasAngularJS2(AngularIndexUtil.java:165)
    at org.angularjs.editor.Angular2Injector.getLanguagesToInject(Angular2Injector.java:40)
    at com.intellij.psi.impl.source.tree.injected.InjectedPsiCachedValueProvider$MyInjProcessor.process(InjectedPsiCachedValueProvider.java:76)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.processInPlaceInjectorsFor(InjectedLanguageManagerImpl.java:422)
    at com.intellij.psi.impl.source.tree.injected.InjectedPsiCachedValueProvider.doCompute(InjectedPsiCachedValueProvider.java:56)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.probeElementsUp(InjectedLanguageUtil.java:344)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.enumerate(InjectedLanguageUtil.java:172)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.enumerateEx(InjectedLanguageManagerImpl.java:320)
    at com.intellij.codeInsight.daemon.impl.InjectedGeneralHighlightingPass.a(InjectedGeneralHighlightingPass.java:190)
    at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:133)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1134)
    at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:105)
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:580)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
    at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:116)
    at com.intellij.concurrency.ApplierCompleter.d(ApplierCompleter.java:96)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:143)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:218)
    at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
    at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
2018-03-15 17:14:52,119 [2221183]  ERROR - aemon.impl.PassExecutorService - PhpStorm 2018.1 EAP  Build #PS-181.4203.107 
2018-03-15 17:14:52,119 [2221183]  ERROR - aemon.impl.PassExecutorService - JDK: 1.8.0_152-release 
2018-03-15 17:14:52,119 [2221183]  ERROR - aemon.impl.PassExecutorService - VM: OpenJDK 64-Bit Server VM 
2018-03-15 17:14:52,119 [2221183]  ERROR - aemon.impl.PassExecutorService - Vendor: JetBrains s.r.o 
2018-03-15 17:14:52,119 [2221183]  ERROR - aemon.impl.PassExecutorService - OS: Mac OS X 
2018-03-15 17:14:52,119 [2221183]  ERROR - aemon.impl.PassExecutorService - Last Action: ShowLog 
2018-03-15 17:15:11,936 [2241000]   INFO - ex.GlobalInspectionContextImpl - Code inspection started 
2018-03-15 17:15:11,990 [2241054]   INFO - ex.GlobalInspectionContextImpl - Code inspection finished. Took 50ms 
2018-03-15 17:15:12,375 [2241439]  ERROR - aemon.impl.PassExecutorService - Lexer has been advanced 100 times more than the amount of lexeme 167 
com.jetbrains.php.lang.parser.PhpParserException: Lexer has been advanced 100 times more than the amount of lexeme 167
    at com.jetbrains.php.lang.parser.PhpPsiBuilder.getTokenType(PhpPsiBuilder.java:97)
    at com.jetbrains.php.lang.parser.PhpPsiBuilder.compare(PhpPsiBuilder.java:31)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:285)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:48)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:48)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariableOrFunctionCall(Variable.java:150)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parse(Variable.java:39)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrimaryExpression.parse(PrimaryExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.PostfixExpression.parse(PostfixExpression.java:13)
    at com.jetbrains.php.lang.parser.parsing.expressions.UnaryExpression.parse(UnaryExpression.java:82)
    at com.jetbrains.php.lang.parser.parsing.expressions.InstanceofExpression.parse(InstanceofExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LogicalNotExpression.parse(LogicalNotExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.MultiplicativeExpression.parse(MultiplicativeExpression.java:24)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.AdditiveExpression.parse(AdditiveExpression.java:23)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.ShiftExpression.parse(ShiftExpression.java:19)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.RelationalExpression.parse(RelationalExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.EqualityExpression.parse(EqualityExpression.java:18)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitAndExpression.parse(BitAndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitXorExpression.parse(BitXorExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitOrExpression.parse(BitOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:53)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:29)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:53)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.UnaryExpression.parse(UnaryExpression.java:80)
    at com.jetbrains.php.lang.parser.parsing.expressions.InstanceofExpression.parse(InstanceofExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LogicalNotExpression.parse(LogicalNotExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.MultiplicativeExpression.parse(MultiplicativeExpression.java:24)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.AdditiveExpression.parse(AdditiveExpression.java:23)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.ShiftExpression.parse(ShiftExpression.java:19)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.RelationalExpression.parse(RelationalExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.EqualityExpression.parse(EqualityExpression.java:18)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitAndExpression.parse(BitAndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitXorExpression.parse(BitXorExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitOrExpression.parse(BitOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:53)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.UnaryExpression.parse(UnaryExpression.java:80)
    at com.jetbrains.php.lang.parser.parsing.expressions.InstanceofExpression.parse(InstanceofExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LogicalNotExpression.parse(LogicalNotExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.MultiplicativeExpression.parse(MultiplicativeExpression.java:24)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.AdditiveExpression.parse(AdditiveExpression.java:23)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.ShiftExpression.parse(ShiftExpression.java:19)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.RelationalExpression.parse(RelationalExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.EqualityExpression.parse(EqualityExpression.java:18)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitAndExpression.parse(BitAndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitXorExpression.parse(BitXorExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitOrExpression.parse(BitOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:156)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:48)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.Statement.parse(Statement.java:85)
    at com.jetbrains.php.lang.parser.parsing.StatementList.parseTopStatement(StatementList.java:133)
    at com.jetbrains.php.lang.parser.parsing.StatementList.parseBlockDeep(StatementList.java:94)
    at com.jetbrains.php.lang.parser.PhpPsiParser.parseBlockDeep(PhpPsiParser.java:35)
    at com.jetbrains.php.lang.parser.PhpElementTypes$GroupStatementElementType.parseContents(PhpElementTypes.java:198)
    at com.intellij.psi.impl.source.tree.LazyParseableElement.lambda$ensureParsed$0(LazyParseableElement.java:193)
    at com.intellij.psi.impl.DebugUtil.performPsiModification(DebugUtil.java:544)
    at com.intellij.psi.impl.source.tree.LazyParseableElement.ensureParsed(LazyParseableElement.java:192)
    at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:247)
    at com.intellij.psi.impl.source.tree.LazyParseablePsiElement.getFirstChild(LazyParseablePsiElement.java:90)
    at com.jetbrains.php.lang.psi.elements.impl.PhpPsiElementImpl.getChildren(PhpPsiElementImpl.java:128)
    at com.jetbrains.php.lang.psi.elements.impl.GroupStatementImpl.getChildren(GroupStatementImpl.java:50)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.scanTree(FunctionImpl.java:264)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getInferredType(FunctionImpl.java:199)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getLocalType(FunctionImpl.java:160)
    at com.jetbrains.php.lang.psi.elements.impl.MethodImpl.getLocalType(MethodImpl.java:244)
    at com.jetbrains.php.lang.psi.stubs.PhpMethodElementType.createStub(PhpMethodElementType.java:37)
    at com.jetbrains.php.lang.psi.stubs.PhpMethodElementType.createStub(PhpMethodElementType.java:19)
    at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.a(DefaultStubBuilder.java:113)
    at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.visitNode(DefaultStubBuilder.java:88)
    at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.buildStubTree(DefaultStubBuilder.java:83)
    at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTreeFor(DefaultStubBuilder.java:58)
    at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTree(DefaultStubBuilder.java:39)
    at com.intellij.psi.stubs.StubTreeBuilder.buildStubTree(StubTreeBuilder.java:84)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.a(StubUpdatingIndex.java:232)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:897)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.map(StubUpdatingIndex.java:214)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.map(StubUpdatingIndex.java:197)
    at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:273)
    at com.intellij.util.indexing.VfsAwareMapReduceIndex.calculateUpdateData(VfsAwareMapReduceIndex.java:98)
    at com.intellij.util.indexing.impl.MapReduceIndex.update(MapReduceIndex.java:213)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1651)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1579)
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:523)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1538)
    at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1526)
    at com.intellij.util.indexing.FileBasedIndexImpl.processRefreshedFile(FileBasedIndexImpl.java:1505)
    at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1669)
    at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1666)
    at com.intellij.util.indexing.UpdateTask.a(UpdateTask.java:76)
    at com.intellij.util.indexing.UpdateTask.processAll(UpdateTask.java:46)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1688)
    at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:719)
    at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:685)
    at com.intellij.psi.stubs.StubIndexImpl.a(StubIndexImpl.java:330)
    at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:307)
    at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:296)
    at org.angularjs.index.AngularIndexUtil.multiResolve(AngularIndexUtil.java:78)
    at org.angularjs.index.AngularIndexUtil.resolve(AngularIndexUtil.java:68)
    at org.angularjs.index.AngularIndexUtil.lambda$getAngularJSVersion$3(AngularIndexUtil.java:174)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:49)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:222)
    at com.intellij.psi.impl.PsiCachedValue.getValueWithLock(PsiCachedValue.java:60)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:38)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:87)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:118)
    at org.angularjs.index.AngularIndexUtil.getAngularJSVersion(AngularIndexUtil.java:171)
    at org.angularjs.index.AngularIndexUtil.hasAngularJS2(AngularIndexUtil.java:165)
    at org.angularjs.editor.Angular2Injector.getLanguagesToInject(Angular2Injector.java:40)
    at com.intellij.psi.impl.source.tree.injected.InjectedPsiCachedValueProvider$MyInjProcessor.process(InjectedPsiCachedValueProvider.java:76)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.processInPlaceInjectorsFor(InjectedLanguageManagerImpl.java:422)
    at com.intellij.psi.impl.source.tree.injected.InjectedPsiCachedValueProvider.doCompute(InjectedPsiCachedValueProvider.java:56)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.probeElementsUp(InjectedLanguageUtil.java:344)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.enumerate(InjectedLanguageUtil.java:172)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.enumerateEx(InjectedLanguageManagerImpl.java:320)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:238)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:200)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:108)
    at com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot(Divider.java:80)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectInformation(LineMarkersPass.java:103)
    at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.c(PassExecutorService.java:437)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1134)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:430)
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:580)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:429)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.d(PassExecutorService.java:405)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:143)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:218)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:403)
    at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:170)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - PhpStorm 2018.1 EAP  Build #PS-181.4203.107 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - JDK: 1.8.0_152-release 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - VM: OpenJDK 64-Bit Server VM 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - Vendor: JetBrains s.r.o 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - OS: Mac OS X 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - Last Action: InspectCode 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - Lexer has been advanced 100 times more than the amount of lexeme 167 
com.jetbrains.php.lang.parser.PhpParserException: Lexer has been advanced 100 times more than the amount of lexeme 167
    at com.jetbrains.php.lang.parser.PhpPsiBuilder.getTokenType(PhpPsiBuilder.java:97)
    at com.jetbrains.php.lang.parser.PhpPsiBuilder.compare(PhpPsiBuilder.java:31)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:285)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:48)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:48)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariableOrFunctionCall(Variable.java:150)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parse(Variable.java:39)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrimaryExpression.parse(PrimaryExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.PostfixExpression.parse(PostfixExpression.java:13)
    at com.jetbrains.php.lang.parser.parsing.expressions.UnaryExpression.parse(UnaryExpression.java:82)
    at com.jetbrains.php.lang.parser.parsing.expressions.InstanceofExpression.parse(InstanceofExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LogicalNotExpression.parse(LogicalNotExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.MultiplicativeExpression.parse(MultiplicativeExpression.java:24)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.AdditiveExpression.parse(AdditiveExpression.java:23)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.ShiftExpression.parse(ShiftExpression.java:19)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.RelationalExpression.parse(RelationalExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.EqualityExpression.parse(EqualityExpression.java:18)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitAndExpression.parse(BitAndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitXorExpression.parse(BitXorExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitOrExpression.parse(BitOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:53)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:29)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:53)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.UnaryExpression.parse(UnaryExpression.java:80)
    at com.jetbrains.php.lang.parser.parsing.expressions.InstanceofExpression.parse(InstanceofExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LogicalNotExpression.parse(LogicalNotExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.MultiplicativeExpression.parse(MultiplicativeExpression.java:24)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.AdditiveExpression.parse(AdditiveExpression.java:23)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.ShiftExpression.parse(ShiftExpression.java:19)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.RelationalExpression.parse(RelationalExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.EqualityExpression.parse(EqualityExpression.java:18)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitAndExpression.parse(BitAndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitXorExpression.parse(BitXorExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitOrExpression.parse(BitOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:53)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseDimOffset(Variable.java:341)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseReferenceVariable(Variable.java:301)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:228)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseVariableWithoutObjects(Variable.java:218)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseBaseVariable(Variable.java:177)
    at com.jetbrains.php.lang.parser.parsing.calls.Variable.parseAssignable(Variable.java:78)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:120)
    at com.jetbrains.php.lang.parser.parsing.expressions.UnaryExpression.parse(UnaryExpression.java:80)
    at com.jetbrains.php.lang.parser.parsing.expressions.InstanceofExpression.parse(InstanceofExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LogicalNotExpression.parse(LogicalNotExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.MultiplicativeExpression.parse(MultiplicativeExpression.java:24)
    at com.jetbrains.php.lang.parser.parsing.expressions.math.AdditiveExpression.parse(AdditiveExpression.java:23)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.ShiftExpression.parse(ShiftExpression.java:19)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.RelationalExpression.parse(RelationalExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.comparition.EqualityExpression.parse(EqualityExpression.java:18)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitAndExpression.parse(BitAndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitXorExpression.parse(BitXorExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.bit.BitOrExpression.parse(BitOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.PrintExpression.parse(PrintExpression.java:31)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.AndExpression.parse(AndExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.OrExpression.parse(OrExpression.java:26)
    at com.jetbrains.php.lang.parser.parsing.expressions.CoalesceExpression.parse(CoalesceExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.TernaryExpression.parse(TernaryExpression.java:16)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parseWithoutPriority(AssignmentExpression.java:156)
    at com.jetbrains.php.lang.parser.parsing.expressions.AssignmentExpression.parse(AssignmentExpression.java:48)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralAndExpression.parse(LiteralAndExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralXorExpression.parse(LiteralXorExpression.java:14)
    at com.jetbrains.php.lang.parser.parsing.expressions.logical.LiteralOrExpression.parse(LiteralOrExpression.java:15)
    at com.jetbrains.php.lang.parser.parsing.expressions.Expression.parse(Expression.java:17)
    at com.jetbrains.php.lang.parser.parsing.Statement.parse(Statement.java:85)
    at com.jetbrains.php.lang.parser.parsing.StatementList.parseTopStatement(StatementList.java:133)
    at com.jetbrains.php.lang.parser.parsing.StatementList.parseBlockDeep(StatementList.java:94)
    at com.jetbrains.php.lang.parser.PhpPsiParser.parseBlockDeep(PhpPsiParser.java:35)
    at com.jetbrains.php.lang.parser.PhpElementTypes$GroupStatementElementType.parseContents(PhpElementTypes.java:198)
    at com.intellij.psi.impl.source.tree.LazyParseableElement.lambda$ensureParsed$0(LazyParseableElement.java:193)
    at com.intellij.psi.impl.DebugUtil.performPsiModification(DebugUtil.java:544)
    at com.intellij.psi.impl.source.tree.LazyParseableElement.ensureParsed(LazyParseableElement.java:192)
    at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:247)
    at com.intellij.psi.impl.source.tree.LazyParseablePsiElement.getFirstChild(LazyParseablePsiElement.java:90)
    at com.jetbrains.php.lang.psi.elements.impl.PhpPsiElementImpl.getChildren(PhpPsiElementImpl.java:128)
    at com.jetbrains.php.lang.psi.elements.impl.GroupStatementImpl.getChildren(GroupStatementImpl.java:50)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.scanTree(FunctionImpl.java:264)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getInferredType(FunctionImpl.java:199)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getLocalType(FunctionImpl.java:160)
    at com.jetbrains.php.lang.psi.elements.impl.MethodImpl.getLocalType(MethodImpl.java:244)
    at com.jetbrains.php.lang.psi.stubs.PhpMethodElementType.createStub(PhpMethodElementType.java:37)
    at com.jetbrains.php.lang.psi.stubs.PhpMethodElementType.createStub(PhpMethodElementType.java:19)
    at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.a(DefaultStubBuilder.java:113)
    at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.visitNode(DefaultStubBuilder.java:88)
    at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.buildStubTree(DefaultStubBuilder.java:83)
    at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTreeFor(DefaultStubBuilder.java:58)
    at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTree(DefaultStubBuilder.java:39)
    at com.intellij.psi.stubs.StubTreeBuilder.buildStubTree(StubTreeBuilder.java:84)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.a(StubUpdatingIndex.java:232)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:897)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.map(StubUpdatingIndex.java:214)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.map(StubUpdatingIndex.java:197)
    at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:273)
    at com.intellij.util.indexing.VfsAwareMapReduceIndex.calculateUpdateData(VfsAwareMapReduceIndex.java:98)
    at com.intellij.util.indexing.impl.MapReduceIndex.update(MapReduceIndex.java:213)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1651)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1579)
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:523)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1538)
    at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1526)
    at com.intellij.util.indexing.FileBasedIndexImpl.processRefreshedFile(FileBasedIndexImpl.java:1505)
    at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1669)
    at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1666)
    at com.intellij.util.indexing.UpdateTask.a(UpdateTask.java:76)
    at com.intellij.util.indexing.UpdateTask.processAll(UpdateTask.java:46)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1688)
    at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:719)
    at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:685)
    at com.intellij.psi.stubs.StubIndexImpl.a(StubIndexImpl.java:330)
    at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:307)
    at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:296)
    at org.angularjs.index.AngularIndexUtil.multiResolve(AngularIndexUtil.java:78)
    at org.angularjs.index.AngularIndexUtil.resolve(AngularIndexUtil.java:68)
    at org.angularjs.index.AngularIndexUtil.lambda$getAngularJSVersion$3(AngularIndexUtil.java:174)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:49)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:222)
    at com.intellij.psi.impl.PsiCachedValue.getValueWithLock(PsiCachedValue.java:60)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:38)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:87)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:118)
    at org.angularjs.index.AngularIndexUtil.getAngularJSVersion(AngularIndexUtil.java:171)
    at org.angularjs.index.AngularIndexUtil.hasAngularJS2(AngularIndexUtil.java:165)
    at org.angularjs.editor.Angular2Injector.getLanguagesToInject(Angular2Injector.java:40)
    at com.intellij.psi.impl.source.tree.injected.InjectedPsiCachedValueProvider$MyInjProcessor.process(InjectedPsiCachedValueProvider.java:76)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.processInPlaceInjectorsFor(InjectedLanguageManagerImpl.java:422)
    at com.intellij.psi.impl.source.tree.injected.InjectedPsiCachedValueProvider.doCompute(InjectedPsiCachedValueProvider.java:56)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.probeElementsUp(InjectedLanguageUtil.java:344)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.enumerate(InjectedLanguageUtil.java:172)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.enumerateEx(InjectedLanguageManagerImpl.java:320)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:238)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:200)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:108)
    at com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot(Divider.java:80)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectInformation(LineMarkersPass.java:103)
    at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.c(PassExecutorService.java:437)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1134)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:430)
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:580)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:429)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.d(PassExecutorService.java:405)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:143)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:218)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:403)
    at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:170)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - PhpStorm 2018.1 EAP  Build #PS-181.4203.107 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - JDK: 1.8.0_152-release 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - VM: OpenJDK 64-Bit Server VM 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - Vendor: JetBrains s.r.o 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - OS: Mac OS X 
2018-03-15 17:15:12,376 [2241440]  ERROR - aemon.impl.PassExecutorService - Last Action: InspectCode 

@iakoder : probably because of exceptions (EA Extended is fail-safe, I but I guess with the problem no type information was available). In fact, I think multiple inspections depending on type information is not getting it because of the exception.

Not much help, but please report the exception to JetBrains.

We have rechecked this issue and find out that even when there is no exceptions in idea.log and all inspections were enabled, inspection doesn't show error for code

<?php
declare( strict_types = 1 );

/**
 *
 */
function foo() {
    /**
     * @var string $x
     */
    $x = 'Foo';
    $x[] = 'Bar';
    echo 'Done';
}
foo();

So I think this issue should be re-opened

I'll re-check (but we have added UTs which are passing, so perhaps just a new test case will be added).

@isfedorov : in $x[] which type $x is?

Seems I misunderstood the original pitch. http://php.net/manual/en/migration71.incompatible.php#migration71.incompatible.empty-string-index-operator is not reported yet, I'll make adjustments.

Added the pattern recognition, thank you for feedback guys!

Thanks for working on this. Unfortunately I'm still not seeing it.

PhpStorm 2018.1
Build #PS-181.4203.565, built on March 28, 2018
Licensed to Intacct / Dan Wilks
You have a perpetual fallback license for this version
Subscription is active until April 6, 2019
JRE: 1.8.0_152-release-1136-b20 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.13.2

Php Inspections (EA Extended): 3.0.0

  • Unsupported string offset operations: new patterns

Yet the code I posted above still doesn't generate any inspection issues. I've run through an inspection profile with Unsupported string offset operations checked and I've run that inspection by-name.

<?php
declare( strict_types = 1 );

/**
 *
 */
function foo() {
    /**
     * @var string $x
     */
    $x = 'Foo';
    $x[] = 'Bar';
    echo 'Done';
}

foo();

@iakoder : that's strange. What's the language level set in the project?

image

Well, at least I said I was sorry in my post. I'd gone back to 7.0 in that project. I'll slink back to my corner now.

Relax, everything is fine =)

Was this page helpful?
0 / 5 - 0 ratings