Bug 29487 - Internal compiler error: final field set in loop (in constructor)
Summary: Internal compiler error: final field set in loop (in constructor)
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows 2000
: P3 critical (vote)
Target Milestone: 2.1 M5   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-01-14 17:01 EST by Paul Philion CLA
Modified: 2003-02-06 05:47 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Philion CLA 2003-01-14 17:01:52 EST
Error			Internal compiler error
java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.ast.FieldReference
	at
org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnFinalAssignmentsInLoop(LoopingFlowContext.java:58)
	at
org.eclipse.jdt.internal.compiler.ast.ForStatement.analyseCode(ForStatement.java:138)
	at
org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration.analyseCode(ConstructorDeclaration.java:94)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.analyseCode(TypeDeclaration.java:415)
	at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.analyseCode(CompilationUnitDeclaration.java:76)
	at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:540)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:337)
	at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:194)
	at
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:144)
	at
org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.build(IncrementalImageBuilder.java:106)
	at
org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas(JavaBuilder.java:190)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:118)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:384)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:852)
	at org.eclipse.core.runtime.Platform.run(Platform.java:413)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:120)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:176)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:186)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:146)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:852)
	at org.eclipse.core.runtime.Platform.run(Platform.java:413)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:160)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:211)
	at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:861)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1569)
	at
org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:79)
	at
org.eclipse.ui.texteditor.AbstractTextEditor.performSaveOperation(AbstractTextEditor.java:2790)
	at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSaveOperation(CompilationUnitEditor.java:849)
	at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:913)
	at org.eclipse.ui.internal.EditorManager$11.run(EditorManager.java:1032)
	at org.eclipse.ui.internal.EditorManager$8.run(EditorManager.java:901)
	at
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:296)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:246)
	at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:432)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:65)
	at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:429)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1174)
	at
org.eclipse.ui.internal.EditorManager.runProgressMonitorOperation(EditorManager.java:907)
	at org.eclipse.ui.internal.EditorManager.saveEditor(EditorManager.java:1037)
	at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:2143)
	at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:30)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:769)
	at
org.eclipse.ui.internal.WWinKeyBindingService.invoke(WWinKeyBindingService.java:139)
	at
org.eclipse.ui.internal.WWinKeyBindingService.pressed(WWinKeyBindingService.java:120)
	at
org.eclipse.ui.internal.WWinKeyBindingService$6.widgetSelected(WWinKeyBindingService.java:376)
	at org.eclipse.ui.internal.AcceleratorMenu$2.handleEvent(AcceleratorMenu.java:55)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:825)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1446)
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:1429)
	at
org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:845)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:462)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:247)
	at org.eclipse.core.launcher.Main.run(Main.java:703)
	at org.eclipse.core.launcher.Main.main(Main.java:539)
	Test.java	test	line 0


Can be easily reproduced with:


public class Test {
	private final int testVal;
	public Test() {
		for (int i = 0; i < 10; i++) {
			this.testVal = i;
		}
	}
}
Comment 1 Philipe Mulet CLA 2003-01-17 06:20:17 EST
Removed offending cast which wasn't necessary anymore.
Thanks for the test case.

Fixed.
Comment 2 David Audel CLA 2003-02-06 05:47:48 EST
Verified.