INRIA / INRIA/spoon

Why CtFieldReference#IS_FINAL #IS_STATIC, CtExecutableReference#IS_STATIC ?

Open
#2,504 1 comment 0 reactions 0 assignees View on GitHub
question
Dominant language
Java
Stars
2k
Forks
392
Avg merge
11h 24m
Merged PRs (30d)
36

Description

@monperrus
Do you know why CtFieldReference has **non derived** roles:
* IS_FINAL
* IS_STATIC

Do you know why CtExecutableReference has **non derived** role:
* IS_STATIC

I can see reason for `static` on CtExecutableReference and CtFieldReference. E.g. here:
```java
class A {
static void method() {}
}
... some code...
//non static call of static method
this.method();
//static call of static method
A.method();
```

but why `final`? I guess that `CtFieldReference#isFinal()` might be derived.

WDYT?

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the CtFieldReference and CtExecutableReference role definitions, focusing on IS_FINAL and IS_STATIC and whether each is derived. Done requires a maintainer decision on the intended API semantics; the issue does not specify a concrete code or test change.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
compilers
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.