Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Freeze into 3.0.x #962

Merged
merged 63 commits into from
Jan 16, 2025
Merged

Merge Freeze into 3.0.x #962

merged 63 commits into from
Jan 16, 2025

Conversation

oberlehner
Copy link
Contributor

No description provided.

mx990 and others added 30 commits December 16, 2024 16:58
Check for syntax and linking errors and inform the user that the
refactoring may not be accurate before refactoring.
deleted SystemPaletteManagement
replaced several explicit strings with TypeLibraryTags references
adjusted test cases
As the mapping target generation is already copying the interface
configuration udpate is not necessary and even wrong.
To have one common place for mapping target creation the
MappingTargetCreator helper class is now also used in the map command.
This required dedicated content types and content bindings so that the
right editor is opening.
Also fixed AttributeSection table to show Type and Name correctly
Add validations and quickfixes to ensure package declarations of global
constants and functions match the folder structure. The validation is
currently set to be ignored by default and can be enabled by users.
The conversion of values in structs and arrays did not properly handle
the required type prefix (e.g., 'T#' or 'DATE#') or any optional type
prefix (e.g., 'BOOL#TRUE'). This uses the typed value converter with
created array and struct value converters to handle both required
and optional type prefixes.
Fix error handling in value converters to avoid NPE if a value cannot be
found with the scanner for the specific pattern and also improve error
messages during array and struct parsing.
The open type dialog always did load all type entries prior to opening
and searching. This was rather slow. By using a
FilteredItemsSelectionDialog the required type libraries are searched on
demand.
As now all coordinates are stored in floating point numbers we can not
simply use an equals 0 check for finding out if we have a 1, 3, or 5
segment connection. This commit fixes that problem and uses everywhere,
where possible, the helper methods from the ConnectionRoutingData.
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.3 to 4.5.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@b4b15b8...6f51ac0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@8df1039...7a6d8a8)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Add a fallback to the type derived from the value for the declared type
of numeric and string literals. This enables the use of the declared
result type, which does not rely on complex type inference, in more
cases.
Use the declared result type to perform overload resolution of call
arguments, which avoids a potential infinite recursion when the result
type would depend on resolving the parameters first.
Resolve parameters when computing the expected type of call arguments,
which can no longer cause an infinite recursion.
Fix computing a compatible type for the expected type of binary
expressions, which prefers the expected type of the container,
as long as it is compatible with the type of the other operand.

This is necessary to ensure that operands remain compatible,
even when the type of the container is not.
Use an equivalent numeric or bit type as the result type for arithmetic
or logical binary expressions to ensure that the result type is always
of the correct kind.
As dependabot only checks the default branch the same settings between
the branches are important. This commit moves the develop settings to
release so that in the future it easier to merge from release to
develop.
Different viewers using the same EditParts (e.g., FB Debug View) the
editor entry of the EditPartFactory may be null. This fix adds a null
check to protect against NPEs.
azoitl and others added 23 commits January 8, 2025 10:47
trailing slash stopped preferred version from being linked
The default setting of the Eclipse Platform for swt.autoScaling is only
only using full integer scale values. For fractional native scaling
settings (e.g., 125%, 175%) this lead to problems as the graphical
elements where not scaled but the text was always scaled with native
scaling.

This commit is now adding the exact as swt.autoScaling parameter as this
greatly improves drawing aspect ratios on screen settings with
fractional scaling settings.
There was a problem where operand types were not converted to the
required unsigned or bit types before determining the common result
type. Also fix equivalent unsigned type for INT.
Also add exceptions for semantically relevant literal conversions.
Log exceptions in evaluator process to aid in debugging problems related
to evaluator execution.
Catch all exceptions when closing shared resources in evaluator to
ensure proper termination regardless of exceptions in any of the shared
resources.
The call to prepare the evaluator needs to be before resolving the
instance event.
Relax the validation of CASE statements to allow comparable types for
CASE labels, instead of requiring that the type of the label is
assignable to the type of the selector expression.
The current resource in the ST editor also contains the ST algorithms
and methods of the copied internal FB type and their parameters. These
were subsequently included in the object descriptions of the resource,
which caused stale or ambiguous references compared to the actual ST
algorithms and methods in the ST source. This filters the ST algorithms
and methods of the internal FB type, including their children, when
computing the descriptions to avoid the problem.
don't create manifest on resolve if it is missing
start resolve on creation of project manifest
There was an NPE when attempting to refactor an FB type with empty
contents. This can happen for SIFBs or CFBs, which do not have an ST
source, as well as SFBs and BFBs with no algorithms or methods. This
fixes the problem by not attempting to refactor such types with Xtext
in the first place.
The package name was also updated for simple renames in the ST
refactoring participant. This could cause a mismatch between the package
name seen by Xtext and the actual package name, in cases where the
package name did not conform to the folder structure. This fixes the
problem by not updating the package name for simple renames.
The imports were previously only updated for types associated with an
Xtext resource. This adds the missing updates for non-Xtext resources,
such as structs, attribtes, adapters, subapps, and systems.
In cases of type loading problems the editorinput of may not be a
TypeEditorInput. This can lead to class cast issues.
…961)

When duble clicking in the system epxlorer or using go into of expanded
subapps for elements contained in typed subapp the element where not
opend neither it was switched to the right editor tab.
Copy link

github-actions bot commented Jan 16, 2025

Test Results

   111 files  + 1     111 suites  +1   49s ⏱️ -1s
29 168 tests +80  29 168 ✅ +80  0 💤 ±0  0 ❌ ±0 
29 169 runs  +80  29 169 ✅ +80  0 💤 ±0  0 ❌ ±0 

Results for commit 6d7e869. ± Comparison against base commit d276a12.

This pull request removes 10 and adds 90 tests. Note that renamed tests count towards both.
org.eclipse.fordiac.ide.test.model.value.ValueConverterTest ‑ toStringTest(ValueConverter, String, Object)[27] StructValueConverter [NumericValueConverter], (a := 17, b := 4), {a=17, b=4}
org.eclipse.fordiac.ide.test.model.value.ValueConverterTest ‑ toStringTest(ValueConverter, String, Object)[28] StructValueConverter [StringValueConverter], (a := 'ab,xy', b := 'ab,$',xy'), {a=ab,xy, b=ab,',xy}
org.eclipse.fordiac.ide.test.model.value.ValueConverterTest ‑ toStringTest(ValueConverter, String, Object)[29] StructValueConverter [ArrayValueConverter [StringValueConverter]], (a := ['abc', 'ab,xy', 'ab,$',xy'], b := ['test', 'value']), {a=[abc, ab,xy, ab,',xy], b=[test, value]}
org.eclipse.fordiac.ide.test.model.value.ValueConverterTest ‑ toValueTest(ValueConverter, Object, String)[43] ArrayValueConverter [NumericValueConverter], class java.lang.IllegalArgumentException, 
org.eclipse.fordiac.ide.test.model.value.ValueConverterTest ‑ toValueTest(ValueConverter, Object, String)[45] ArrayValueConverter [NumericValueConverter], class java.lang.IllegalArgumentException, NoArray
org.eclipse.fordiac.ide.test.model.value.ValueConverterTest ‑ toValueTest(ValueConverter, Object, String)[46] ArrayValueConverter [NumericValueConverter], class java.lang.IllegalArgumentException, [17,,]
org.eclipse.fordiac.ide.test.model.value.ValueConverterTest ‑ toValueTest(ValueConverter, Object, String)[47] ArrayValueConverter [NumericValueConverter], class java.lang.IllegalArgumentException, [4
org.eclipse.fordiac.ide.test.model.value.ValueConverterTest ‑ toValueTest(ValueConverter, Object, String)[48] StructValueConverter [NumericValueConverter], {a=17, b=4}, (a:=17,b:=4)
org.eclipse.fordiac.ide.test.model.value.ValueConverterTest ‑ toValueTest(ValueConverter, Object, String)[49] StructValueConverter [StringValueConverter], {a=ab,xy, b=ab,',xy}, (a:='ab,xy',b:='ab,$',xy')
org.eclipse.fordiac.ide.test.model.value.ValueConverterTest ‑ toValueTest(ValueConverter, Object, String)[50] StructValueConverter [ArrayValueConverter [StringValueConverter]], {a=[abc, ab,xy, ab,',xy], b=[test, value]}, (a:=['abc','ab,xy','ab,$',xy'],b:=['test','value'])
org.eclipse.fordiac.ide.structuredtextfunctioneditor.tests.STFunctionValidatorTest ‑ testTruncatingLiteralConversions
org.eclipse.fordiac.ide.structuredtextfunctioneditor.tests.STFunctionValidatorTest ‑ testUnnecessaryLiteralConversions
org.eclipse.fordiac.ide.structuredtextfunctioneditor.tests.STFunctionValidatorTest ‑ testValidCaseConditionType
org.eclipse.fordiac.ide.structuredtextfunctioneditor.tests.TypeInferenceTest ‑ testBinaryExpression(String, String, String, String, String, String, String, String) INT := 128 + 4;
org.eclipse.fordiac.ide.structuredtextfunctioneditor.tests.TypeInferenceTest ‑ testBinaryExpression(String, String, String, String, String, String, String, String) INT := 17 + 128;
org.eclipse.fordiac.ide.structuredtextfunctioneditor.tests.TypeInferenceTest ‑ testBinaryExpression(String, String, String, String, String, String, String, String) INT := 17 + 32768;
org.eclipse.fordiac.ide.structuredtextfunctioneditor.tests.TypeInferenceTest ‑ testBinaryExpression(String, String, String, String, String, String, String, String) INT := 17 + 4;
org.eclipse.fordiac.ide.structuredtextfunctioneditor.tests.TypeInferenceTest ‑ testBinaryExpression(String, String, String, String, String, String, String, String) INT := 32768 + 4;
org.eclipse.fordiac.ide.structuredtextfunctioneditor.tests.TypeInferenceTest ‑ testBinaryExpression(String, String, String, String, String, String, String, String) UINT := 128 + 4;
org.eclipse.fordiac.ide.structuredtextfunctioneditor.tests.TypeInferenceTest ‑ testBinaryExpression(String, String, String, String, String, String, String, String) UINT := 17 + 128;
…

♻️ This comment has been updated with latest results.

@oberlehner oberlehner merged commit c68babd into 3.0.x Jan 16, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants