mirror of
https://github.com/github/codeql.git
synced 2026-07-14 15:58:16 +02:00
Synthesised and bare `get`/`set` accessors were extracted with different
source locations depending on the frontend:
val typedProp: Int = 3 // getTypedProp
K1: 5:5:5:17 (val..name) K2: 5:5:5:22 (val..type)
val defaultGetter = 7
get // getDefaultGetter
K1: 19:5:19:21 (property head) K2: 20:13:20:15 (`get` keyword)
Under K2 the extractor has no PSI back-mapping for these accessors
(`getKtFile` returns null), so it cannot reproduce K1's property-name-end
span; K2 instead falls back to the raw IR offsets. Rather than converge on a
value K2 cannot produce, K1 is made to match the K2-native spans via the PSI:
* a bare `get`/`set` keyword now points at the keyword token; and
* a fully synthesised accessor now spans the property signature
(`val`/`var` .. type annotation, or .. name when untyped), excluding the
initialiser.
Explicit-body accessors (`get() = 5`) are unaffected: they are located at
their body and never take this override.
Only K1 output changes; the test-kotlin2 (K2) expected files are unchanged.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
82 lines
8.1 KiB
Plaintext
82 lines
8.1 KiB
Plaintext
comments
|
|
| comments.kt:1:1:1:25 | /** Kdoc with no owner */ | /** Kdoc with no owner */ |
|
|
| comments.kt:4:1:11:3 | /**\n * A group of *members*.\n *\n * This class has no useful logic; it's just a documentation example.\n *\n * @property name the name of this group.\n * @constructor Creates an empty group.\n */ | /**\n * A group of *members*.\n *\n * This class has no useful logic; it's just a documentation example.\n *\n * @property name the name of this group.\n * @constructor Creates an empty group.\n */ |
|
|
| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | /**\n * Members of this group.\n */ |
|
|
| comments.kt:19:5:22:7 | /**\n * Adds a [member] to this group.\n * @return the new size of the group.\n */ | /**\n * Adds a [member] to this group.\n * @return the new size of the group.\n */ |
|
|
| comments.kt:24:9:24:25 | // A line comment | // A line comment |
|
|
| comments.kt:28:5:30:6 | /*\n A block comment\n */ | /*\n A block comment\n */ |
|
|
| comments.kt:35:5:35:34 | /** Medium is in the middle */ | /** Medium is in the middle */ |
|
|
| comments.kt:37:5:37:23 | /** This is high */ | /** This is high */ |
|
|
| comments.kt:42:5:44:7 | /**\n * A variable.\n */ | /**\n * A variable.\n */ |
|
|
| comments.kt:48:1:50:3 | /**\n * A type alias comment\n */ | /**\n * A type alias comment\n */ |
|
|
| comments.kt:54:5:56:7 | /**\n * An init block comment\n */ | /**\n * An init block comment\n */ |
|
|
| comments.kt:61:5:63:7 | /**\n * A prop comment\n */ | /**\n * A prop comment\n */ |
|
|
| comments.kt:65:9:67:11 | /**\n * An accessor comment\n */ | /**\n * An accessor comment\n */ |
|
|
| comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | /**\n * An anonymous function comment\n */ |
|
|
| comments.kt:79:9:81:11 | /**\n * A local function comment\n */ | /**\n * A local function comment\n */ |
|
|
| comments.kt:88:10:90:11 | /**\n * An anonymous object comment\n */ | /**\n * An anonymous object comment\n */ |
|
|
| comments.kt:95:1:95:163 | // Diagnostic Matches: % Couldn't get owner of KDoc. The comment is extracted without an owner. ...while extracting a file (comments.kt) at %comments.kt:1:1:96:0% | // Diagnostic Matches: % Couldn't get owner of KDoc. The comment is extracted without an owner. ...while extracting a file (comments.kt) at %comments.kt:1:1:96:0% |
|
|
commentOwners
|
|
| comments.kt:4:1:11:3 | /**\n * A group of *members*.\n *\n * This class has no useful logic; it's just a documentation example.\n *\n * @property name the name of this group.\n * @constructor Creates an empty group.\n */ | comments.kt:12:1:31:1 | Group |
|
|
| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:13:17:23 | getMembers$private |
|
|
| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:13:17:46 | members |
|
|
| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:13:17:46 | members |
|
|
| comments.kt:19:5:22:7 | /**\n * Adds a [member] to this group.\n * @return the new size of the group.\n */ | comments.kt:23:5:26:5 | add |
|
|
| comments.kt:35:5:35:34 | /** Medium is in the middle */ | comments.kt:36:5:36:14 | Medium |
|
|
| comments.kt:37:5:37:23 | /** This is high */ | comments.kt:38:5:38:11 | High |
|
|
| comments.kt:48:1:50:3 | /**\n * A type alias comment\n */ | comments.kt:51:1:51:24 | MyType |
|
|
| comments.kt:54:5:56:7 | /**\n * An init block comment\n */ | comments.kt:53:1:58:1 | InitBlock |
|
|
| comments.kt:61:5:63:7 | /**\n * A prop comment\n */ | comments.kt:64:5:68:17 | prop |
|
|
| comments.kt:65:9:67:11 | /**\n * An accessor comment\n */ | comments.kt:68:9:68:17 | getProp |
|
|
| comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:70:20 | getL |
|
|
| comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:76:10 | l |
|
|
| comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:76:10 | l |
|
|
| comments.kt:79:9:81:11 | /**\n * A local function comment\n */ | comments.kt:82:9:82:24 | localFn |
|
|
| comments.kt:88:10:90:11 | /**\n * An anonymous object comment\n */ | comments.kt:87:15:92:5 | |
|
|
| comments.kt:88:10:90:11 | /**\n * An anonymous object comment\n */ | comments.kt:87:15:92:5 | new X(...) { ... } |
|
|
commentNoOwners
|
|
| comments.kt:1:1:1:25 | /** Kdoc with no owner */ |
|
|
| comments.kt:24:9:24:25 | // A line comment |
|
|
| comments.kt:28:5:30:6 | /*\n A block comment\n */ |
|
|
| comments.kt:42:5:44:7 | /**\n * A variable.\n */ |
|
|
| comments.kt:95:1:95:163 | // Diagnostic Matches: % Couldn't get owner of KDoc. The comment is extracted without an owner. ...while extracting a file (comments.kt) at %comments.kt:1:1:96:0% |
|
|
commentSections
|
|
| comments.kt:1:1:1:25 | /** Kdoc with no owner */ | Kdoc with no owner |
|
|
| comments.kt:4:1:11:3 | /**\n * A group of *members*.\n *\n * This class has no useful logic; it's just a documentation example.\n *\n * @property name the name of this group.\n * @constructor Creates an empty group.\n */ | A group of *members*.\n\nThis class has no useful logic; it's just a documentation example.\n\n |
|
|
| comments.kt:4:1:11:3 | /**\n * A group of *members*.\n *\n * This class has no useful logic; it's just a documentation example.\n *\n * @property name the name of this group.\n * @constructor Creates an empty group.\n */ | Creates an empty group. |
|
|
| comments.kt:4:1:11:3 | /**\n * A group of *members*.\n *\n * This class has no useful logic; it's just a documentation example.\n *\n * @property name the name of this group.\n * @constructor Creates an empty group.\n */ | the name of this group. |
|
|
| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | Members of this group. |
|
|
| comments.kt:19:5:22:7 | /**\n * Adds a [member] to this group.\n * @return the new size of the group.\n */ | Adds a [member] to this group.\n |
|
|
| comments.kt:35:5:35:34 | /** Medium is in the middle */ | Medium is in the middle |
|
|
| comments.kt:37:5:37:23 | /** This is high */ | This is high |
|
|
| comments.kt:42:5:44:7 | /**\n * A variable.\n */ | A variable. |
|
|
| comments.kt:48:1:50:3 | /**\n * A type alias comment\n */ | A type alias comment |
|
|
| comments.kt:54:5:56:7 | /**\n * An init block comment\n */ | An init block comment |
|
|
| comments.kt:61:5:63:7 | /**\n * A prop comment\n */ | A prop comment |
|
|
| comments.kt:65:9:67:11 | /**\n * An accessor comment\n */ | An accessor comment |
|
|
| comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | An anonymous function comment |
|
|
| comments.kt:79:9:81:11 | /**\n * A local function comment\n */ | A local function comment |
|
|
| comments.kt:88:10:90:11 | /**\n * An anonymous object comment\n */ | An anonymous object comment |
|
|
commentSectionContents
|
|
| A group of *members*.\n\nThis class has no useful logic; it's just a documentation example.\n\n | A group of *members*.\n\nThis class has no useful logic; it's just a documentation example.\n\n |
|
|
| A local function comment | A local function comment |
|
|
| A prop comment | A prop comment |
|
|
| A type alias comment | A type alias comment |
|
|
| A variable. | A variable. |
|
|
| Adds a [member] to this group.\n | Adds a [member] to this group.\n |
|
|
| An accessor comment | An accessor comment |
|
|
| An anonymous function comment | An anonymous function comment |
|
|
| An anonymous object comment | An anonymous object comment |
|
|
| An init block comment | An init block comment |
|
|
| Creates an empty group. | Creates an empty group. |
|
|
| Kdoc with no owner | Kdoc with no owner |
|
|
| Medium is in the middle | Medium is in the middle |
|
|
| Members of this group. | Members of this group. |
|
|
| This is high | This is high |
|
|
| the name of this group. | the name of this group. |
|
|
commentSectionNames
|
|
| Creates an empty group. | constructor |
|
|
| the name of this group. | property |
|
|
commentSectionSubjectNames
|
|
| the name of this group. | name |
|