Uploaded image for project: 'Clover'
  1. Clover
  2. CLOV-1788

Make session.enterClass() more language-independent

    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

      Clean up InstrumentationSession.enterClass(..., boolean isInterface, boolean isEnum, boolean isAnnotation) so that it instead takes a LanguageConstruct to indicated what it is which is then embedded in ClassInfo. This divorces this part of the API from Java allowing us to model languages like Scala who have things like traits, singleton objects, etc.

      This may require a separate LanguageConstruct-like type (TypeConstruct ?) as it will likely need to be smarter than LanguageConstruct and be able to answer some basic questions Clover may need to ask e.g.

      if (!typeInfo.getConstruct().isAbstract(typeInfo)) { //Java interfaces and annotations are always abstract, Scala trait is sometimes abstract, ...
      //include in the report
      }
      

      The example above is a bit fake because surely we could determine if a TypeInfo is abstract by traversing it but there may be situations where we need to ask similar questions.

            [CLOV-1788] Make session.enterClass() more language-independent

            Katherine Yabut made changes -
            Workflow Original: JAC Suggestion Workflow [ 3342061 ] New: JAC Suggestion Workflow 3 [ 3584560 ]
            Status Original: RESOLVED [ 5 ] New: Closed [ 6 ]
            Monique Khairuliana (Inactive) made changes -
            Epic Link Original: CLOV-1737 [ 431986 ]
            Michael Andreacchio made changes -
            Workflow Original: New Clover Workflow [ 955649 ] New: JAC Suggestion Workflow [ 3342061 ]
            Issue Type Original: Improvement [ 4 ] New: Suggestion [ 10000 ]
            Status Original: Closed [ 6 ] New: Resolved [ 5 ]
            Michael Andreacchio made changes -
            Resolution New: Won't Fix [ 2 ]
            Status Original: Open [ 1 ] New: Closed [ 6 ]
            Marek Parfianowicz made changes -
            Assignee Original: Marek Parfianowicz [ mparfianowicz ]
            Marek Parfianowicz made changes -
            Rank New: Ranked higher
            Marek Parfianowicz made changes -
            Sprint Original: 5.0.0 Sprint 1 [ 2601 ]
            Marek Parfianowicz made changes -
            Fix Version/s New: 4.2.0 [ 56395 ]
            Fix Version/s Original: 5.0.0 [ 37518 ]
            Grzegorz Lewandowski made changes -
            Rank New: Ranked higher
            Grzegorz Lewandowski made changes -
            Sprint Original: 5.0.0 Sprint 2 [ 2603 ] New: 5.0.0 Sprint 1 [ 2601 ]

              Unassigned Unassigned
              mparfianowicz Marek Parfianowicz
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: