Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 324535

Summary: [Open Type] Exception is thrown to log
Product: z_Archived Reporter: Roy Ganor <ganoro>
Component: PDTAssignee: PHP UI <php.ui-inbox>
Status: CLOSED FIXED QA Contact: Ilina Stefanova <ilina.s>
Severity: normal    
Priority: P3 CC: kalin.a
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
example (from drupal)
none
patch none

Description Roy Ganor CLA 2010-09-05 10:52:48 EDT
Created attachment 178228 [details]
example (from drupal)

1. create a new project
2. copy the attached file to poject
3. go to line 999 and position the cursor on the variable $type

Exception is thrown to log:


!ENTRY org.eclipse.php.core 4 4 2010-09-05 17:50:51.262
!MESSAGE java.lang.ClassCastException: org.eclipse.php.internal.core.compiler.ast.nodes.ReflectionArrayVariableReference cannot be cast to org.eclipse.php.internal.core.compiler.ast.nodes.ArrayVariableReference


full exception:

java.lang.ClassCastException: org.eclipse.php.internal.core.compiler.ast.nodes.ReflectionArrayVariableReference cannot be cast to org.eclipse.php.internal.core.compiler.ast.nodes.ArrayVariableReference
	at org.eclipse.php.internal.core.typeinference.VariableDeclarationSearcher.addDeclaredVariables(VariableDeclarationSearcher.java:181)
	at org.eclipse.php.internal.core.typeinference.VariableDeclarationSearcher.visit(VariableDeclarationSearcher.java:158)
	at org.eclipse.php.internal.core.compiler.ast.nodes.Assignment.traverse(Assignment.java:69)
	at org.eclipse.php.internal.core.compiler.ast.nodes.ExpressionStatement.traverse(ExpressionStatement.java:44)
	at org.eclipse.dltk.ast.statements.Block.traverse(Block.java:43)
	at org.eclipse.php.internal.core.compiler.ast.nodes.IfStatement.traverse(IfStatement.java:55)
	at org.eclipse.dltk.ast.statements.Block.traverse(Block.java:43)
	at org.eclipse.php.internal.core.compiler.ast.nodes.IfStatement.traverse(IfStatement.java:55)
	at org.eclipse.dltk.ast.statements.Block.traverse(Block.java:43)
	at org.eclipse.dltk.ast.declarations.MethodDeclaration.traverseChildNodes(MethodDeclaration.java:97)
	at org.eclipse.dltk.ast.declarations.MethodDeclaration.traverse(MethodDeclaration.java:71)
	at org.eclipse.dltk.ast.statements.Block.traverse(Block.java:43)
	at org.eclipse.dltk.ast.declarations.ModuleDeclaration.traverse(ModuleDeclaration.java:71)
	at org.eclipse.php.internal.core.typeinference.evaluators.VariableReferenceEvaluator.init(VariableReferenceEvaluator.java:83)
	at org.eclipse.dltk.ti.GoalEngine.evaluateGoal(GoalEngine.java:220)
	at org.eclipse.dltk.ti.DefaultTypeInferencer.evaluateType(DefaultTypeInferencer.java:223)
	at org.eclipse.dltk.ti.DefaultTypeInferencer.evaluateType(DefaultTypeInferencer.java:213)
	at org.eclipse.php.internal.core.typeinference.BindingUtility.getType(BindingUtility.java:162)
	at org.eclipse.php.internal.core.typeinference.BindingUtility.getType(BindingUtility.java:188)
	at org.eclipse.php.internal.core.typeinference.BindingUtility.getType(BindingUtility.java:156)
	at org.eclipse.php.internal.core.ast.nodes.DefaultBindingResolver.getEvaluatedType(DefaultBindingResolver.java:243)
	at org.eclipse.php.internal.core.ast.nodes.DefaultBindingResolver.resolveExpressionType(DefaultBindingResolver.java:375)
	at org.eclipse.php.internal.core.ast.nodes.Expression.resolveTypeBinding(Expression.java:107)
	at org.eclipse.php.internal.ui.editor.highlighter.ModelUtils.getField(ModelUtils.java:27)
	at org.eclipse.php.internal.ui.editor.highlighters.DeprecatedHighlighting$DeprecatedApply.visit(DeprecatedHighlighting.java:73)
	at org.eclipse.php.internal.core.ast.nodes.FieldAccess.accept0(FieldAccess.java:70)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.ConditionalExpression.childrenAccept(ConditionalExpression.java:89)
	at org.eclipse.php.internal.core.ast.nodes.ConditionalExpression.accept0(ConditionalExpression.java:81)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.ReturnStatement.childrenAccept(ReturnStatement.java:76)
	at org.eclipse.php.internal.core.ast.nodes.ReturnStatement.accept0(ReturnStatement.java:69)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Block.childrenAccept(Block.java:97)
	at org.eclipse.php.internal.core.ast.nodes.Block.accept0(Block.java:90)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.FunctionDeclaration.childrenAccept(FunctionDeclaration.java:108)
	at org.eclipse.php.internal.core.ast.nodes.FunctionDeclaration.accept0(FunctionDeclaration.java:97)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Program.childrenAccept(Program.java:195)
	at org.eclipse.php.internal.core.ast.nodes.Program.accept0(Program.java:188)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.ui.editor.highlighter.AbstractSemanticHighlighting.consumes(AbstractSemanticHighlighting.java:90)
	at org.eclipse.php.internal.ui.editor.highlighter.AbstractSemanticHighlighting.consumes(AbstractSemanticHighlighting.java:99)
	at org.eclipse.wst.sse.ui.internal.style.SemanticHighlightingReconciler.reconcile(SemanticHighlightingReconciler.java:127)
	at org.eclipse.wst.sse.ui.internal.reconcile.DocumentRegionProcessor.endProcessing(DocumentRegionProcessor.java:119)
	at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor.run(DirtyRegionProcessor.java:682)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 1 Zhongwei Zhao CLA 2010-09-05 11:10:47 EDT
Created attachment 178229 [details]
patch
Comment 2 Roy Ganor CLA 2010-09-06 11:21:37 EDT
committed to branch and head
Comment 3 Kalin CLA 2011-08-01 10:54:14 EDT
Verified.
Closing...