eclipse-ocl / org.eclipse.ocl

Eclipse Public License 2.0
0 stars 0 forks source link

[pivot] VoidTypeAttribution looks up everything #1225

Open eclipse-ocl-bot opened 2 hours ago

eclipse-ocl-bot commented 2 hours ago

| --- | --- | | Bugzilla Link | 420459 | | Status | NEW | | Importance | P3 normal | | Reported | Oct 27, 2013 14:07 EDT | | Modified | Dec 11, 2013 13:58 EDT | | Reporter | Ed Willink |

Description

If anything goes wrong during parsing the type is set to OclInvalidType. Any subsequent lookup attempt uses VoidTypeAttribution which on a large model such as UML can be really really slow, firstly because it builds lazy data structures for all types and then because it traverses them.

Probably need an ErrorType that looks up nothing.

eclipse-ocl-bot commented 2 hours ago

By Ed Willink on Oct 27, 2013 14:14

As well as taking forever, this actually can occur as part of the Outline Refresh Job locking up the main threead.

Investigate

a) an abort key for CS2PIvotLinker.linkModel

b) moving to worker thread

c) reporting main thread Outline Refresh as an Xtext bug

eclipse-ocl-bot commented 2 hours ago

By Ed Willink on Dec 11, 2013 13:58

Searching for everything is pretty pointless. Indeed given

null.name

there may be many different X::name properties. Better to have a ststic error rather than search hard to resolve one and get a later run-time error.

Test fixing can be avoided by letting OclVoid conformTo OclType, OclSummable, OclConmparable, Integer, String.

Reverting to simple OclVoid to OclAny conformance requires about 20 sub-tests to be fixed within 11 tests.

null >= ... is now a static rather than dynamic invalid.