Bug 460518 - [compiler] clarify that base imports cannot be on-demand
Summary: [compiler] clarify that base imports cannot be on-demand
Status: RESOLVED FIXED
Alias: None
Product: Objectteams
Classification: Tools
Component: OTJ (show other bugs)
Version: 2.3.1   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 2.4 RC   Edit
Assignee: Stephan Herrmann CLA
QA Contact:
URL:
Whiteboard:
Keywords: Documentation
Depends on:
Blocks:
 
Reported: 2015-02-21 12:13 EST by Stephan Herrmann CLA
Modified: 2015-06-09 13:07 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stephan Herrmann CLA 2015-02-21 12:13:30 EST
The OT/J grammar prohibits on-demand base imports. This should be made explicit in OTJLD.

Additionally, using this illegal syntax seems to cause this (happened when changing base import to on-demand in GUIConnector of OTSample-Flightbonus):

	at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding$2.compare(ReferenceBinding.java:137)
	at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding$2.compare(ReferenceBinding.java:1)
	at java.util.TimSort.binarySort(TimSort.java:265)
	at java.util.TimSort.sort(TimSort.java:190)
	at java.util.Arrays.sort(Arrays.java:727)
	at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.sortFields(ReferenceBinding.java:349)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.getField(BinaryTypeBinding.java:1467)
	at org.eclipse.objectteams.otdt.internal.core.compiler.bytecode.SingleValueAttribute.evaluate(SingleValueAttribute.java:203)
	at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.evaluateOTAttributes(ClassFileReader.java:636)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:707)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment._OT$createBinaryTypeFrom$orig(LookupEnvironment.java:933)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment._OT$createBinaryTypeFrom$chain(LookupEnvironment.java)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:916)
	at org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:352)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment._OT$askForType$orig(LookupEnvironment.java:218)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment._OT$askForType$chain(LookupEnvironment.java)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java)
	at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:106)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:306)
	at org.eclipse.jdt.internal.compiler.lookup.TypeSystem.getUnannotatedType(TypeSystem.java:225)
	at org.eclipse.jdt.internal.compiler.lookup.TypeSystem.getParameterizedType(TypeSystem.java:335)
	at org.eclipse.jdt.internal.compiler.lookup.TypeSystem.getParameterizedType(TypeSystem.java:382)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createParameterizedType(LookupEnvironment.java:1192)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1791)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createFields(BinaryTypeBinding.java:767)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:666)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment._OT$createBinaryTypeFrom$orig(LookupEnvironment.java:933)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment._OT$createBinaryTypeFrom$chain(LookupEnvironment.java)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:916)
	at org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:352)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:246)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding$TeamPackageBinding.getRoleType(PackageBinding.java:393)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.findTypeInTeamPackage(SourceTypeBinding.java:1726)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding._OT$getMemberType$orig(SourceTypeBinding.java:1678)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding._OT$getMemberType$chain(SourceTypeBinding.java)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getMemberType(SourceTypeBinding.java)
	at org.eclipse.objectteams.otdt.internal.core.compiler.model.RoleModel.getClassPartBinding(RoleModel.java:613)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethod(BinaryTypeBinding.java:1079)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethods(BinaryTypeBinding.java:1154)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:667)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment._OT$createBinaryTypeFrom$orig(LookupEnvironment.java:933)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment._OT$createBinaryTypeFrom$chain(LookupEnvironment.java)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:916)
	at org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:352)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:246)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding$TeamPackageBinding.getRoleType(PackageBinding.java:393)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.findTypeInTeamPackage(SourceTypeBinding.java:1726)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding._OT$getMemberType$orig(SourceTypeBinding.java:1678)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding._OT$getMemberType$chain(SourceTypeBinding.java)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getMemberType(SourceTypeBinding.java)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance._OT$copyRole$orig(CopyInheritance.java:572)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance._OT$copyRole$chain(CopyInheritance.java)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance._OT$copyRole$chain(CopyInheritance.java)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance.copyRole(CopyInheritance.java)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance.copyLateRolePart(CopyInheritance.java:776)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance.copyLateRole(CopyInheritance.java:760)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance.internalCheckCopyLateRoleFile(CopyInheritance.java:744)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance.checkCopyLateRoleFile(CopyInheritance.java:704)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding._OT$getMemberType$orig(SourceTypeBinding.java:1673)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding._OT$getMemberType$chain(SourceTypeBinding.java)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getMemberType(SourceTypeBinding.java)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance.loadRoleFiles(CopyInheritance.java:362)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance.copyRolesFromTeam(CopyInheritance.java:232)
	at org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance.copyRoles(CopyInheritance.java:196)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTeamMemberTypes(ClassScope.java:1527)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectMemberTypes(ClassScope.java:1491)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope._OT$connectTypeHierarchy$orig(ClassScope.java:2198)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope._OT$connectTypeHierarchy$chain(ClassScope.java)
	at org.eclipse.objectteams.otdt.internal.compiler.adaptor.BuildManager$__OT__ClassScope._OT$connectTypeHierarchy$base(BuildManager.java)
	at org.eclipse.objectteams.otdt.internal.compiler.adaptor.BuildManager$__OT__ClassScope.connectTypeHierarchy(BuildManager.java:175)
	at org.eclipse.objectteams.otdt.internal.compiler.adaptor.BuildManager._OT$ClassScope$connectTypeHierarchy$connectTypeHierarchy(BuildManager.java:171)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope._OT$connectTypeHierarchy$chain(ClassScope.java)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy(ClassScope.java)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(CompilationUnitScope.java:575)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:343)
	at org.eclipse.jdt.internal.compiler.Compiler.internalBeginToCompile(Compiler.java:840)
	at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:441)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:487)
Comment 1 Stephan Herrmann CLA 2015-02-21 15:04:05 EST
(In reply to Stephan Herrmann from comment #0)
> Additionally, using this illegal syntax seems to cause this (happened when
> changing base import to on-demand in GUIConnector of OTSample-Flightbonus):
> 
> 	at
> org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding$2.
> compare(ReferenceBinding.java:137)

That exception got its own home in bug 460525
Comment 2 Stephan Herrmann CLA 2015-06-09 13:07:42 EDT
Resolved via commit 83c7155ed78ba8bb341d533387fa3ab3317f242e