Project

Profile

Help

Bug #3523

closed

Static type checking on reflexive extension functions does not take ?void=this into account

Added by Michael Kay over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Saxon extensions
Sprint/Milestone:
-
Start date:
2017-11-13
Due date:
% Done:

100%

Estimated time:
Legacy ID:
Applies to branch:
9.8, trunk
Fix Committed on Branch:
9.8, trunk
Fixed in Maintenance Release:
Platforms:

Description

See JUnit test case TestReflexion/testThisSetter2.

It appears that the URI suffix ?void=this is not considered when doing static type checking on reflexive extension function calls, that is, the static type of the call is assumed to be () rather than the type of the instance to which the method is applied.

Actions #1

Updated by Michael Kay over 6 years ago

A simple fix to JavaExtensionFunctionCall.adjustRequiredType() fixes the static type inferencing error, but the test then fails on a run-time cardinality checking error which needs further investigation.

Actions #2

Updated by Michael Kay over 6 years ago

  • Status changed from New to In Progress
Actions #3

Updated by Michael Kay over 6 years ago

  • Status changed from In Progress to Resolved
  • Applies to branch 9.8, trunk added
  • Fix Committed on Branch 9.8, trunk added

The property "returnVoidAsThis" in a JavaExtensionFunctionCall object was not being retained through a call of Expression.copy().

Fixed on the 9.8 and trunk branches.

Actions #4

Updated by O'Neil Delpratt over 6 years ago

  • % Done changed from 0 to 100

Bug fix applied in the Saxon 9.8.0.7 maintenance release.

Actions #5

Updated by O'Neil Delpratt over 6 years ago

  • Status changed from Resolved to Closed
  • Fixed in Maintenance Release 9.8.0.7 added

Please register to edit this issue

Also available in: Atom PDF