mirror of
https://github.com/github/codeql.git
synced 2026-04-22 15:25:18 +02:00
Merge branch 'main' into redsun82/swift-macos-integration-tests
This commit is contained in:
51
.github/workflows/atm-check-queries-run.yml
vendored
51
.github/workflows/atm-check-queries-run.yml
vendored
@@ -1,13 +1,56 @@
|
||||
name: ATM Check Queries Run
|
||||
|
||||
# This check is required, therefore we must run it on all PRs, even if only Markdown has changed.
|
||||
env:
|
||||
DB_PATH: test_db
|
||||
ATM_MODEL_PACK: javascript/ql/experimental/adaptivethreatmodeling/src
|
||||
QUERY_SUITE: codeql-suites/javascript-atm-code-scanning.qls
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- ".github/workflows/atm-check-queries-run.yml"
|
||||
- "javascript/ql/experimental/adaptivethreatmodeling/**"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
hello-world:
|
||||
run-atm-queries:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: foo
|
||||
run: echo "Hello world"
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install CodeQL CLI
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
gh extensions install github/gh-codeql
|
||||
gh codeql download
|
||||
|
||||
- name: Install ATM model pack
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
set -exu
|
||||
|
||||
# Install ATM model pack
|
||||
gh codeql pack install ${ATM_MODEL_PACK}
|
||||
|
||||
# Retrieve model checksum
|
||||
model_checksum=$(gh codeql resolve extensions ${ATM_MODEL_PACK}/${QUERY_SUITE} | jq -r '.models[0].checksum')
|
||||
|
||||
# Trust the model so that we can use it in the ATM boosted queries
|
||||
mkdir -p "$HOME/.config/codeql"
|
||||
echo "--insecurely-execute-ml-model-checksums ${model_checksum}" >> "$HOME/.config/codeql/config"
|
||||
|
||||
- name: Create test DB
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
gh codeql database create ${RUNNER_TEMP}/${DB_PATH} --source-root config/atm/ --language javascript
|
||||
|
||||
- name: Run ATM query suite
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
gh codeql database run-queries -vv -- ${RUNNER_TEMP}/${DB_PATH} ${ATM_MODEL_PACK}/${QUERY_SUITE}
|
||||
|
||||
|
||||
12
.github/workflows/atm-model-integration-tests.yml
vendored
Normal file
12
.github/workflows/atm-model-integration-tests.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
name: ATM Model Integration Tests
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
hello-world:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: foo
|
||||
run: echo "Hello world"
|
||||
4
.github/workflows/ruby-build.yml
vendored
4
.github/workflows/ruby-build.yml
vendored
@@ -96,8 +96,8 @@ jobs:
|
||||
- name: Build Query Pack
|
||||
run: |
|
||||
codeql pack create ../shared/ssa --output target/packs
|
||||
codeql pack create ../misc/suite-helpers --output target/packs
|
||||
codeql pack create ql/lib --output target/packs
|
||||
codeql pack install ql/src
|
||||
codeql pack create ql/src --output target/packs
|
||||
PACK_FOLDER=$(readlink -f target/packs/codeql/ruby-queries/*)
|
||||
codeql generate query-help --format=sarifv2.1.0 --output="${PACK_FOLDER}/rules.sarif" ql/src
|
||||
@@ -202,7 +202,7 @@ jobs:
|
||||
echo 'name: sample-tests
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
codeql/ruby-all: 0.0.1
|
||||
codeql/ruby-all: "*"
|
||||
extractor: ruby
|
||||
tests: .
|
||||
' > qlpack.yml
|
||||
|
||||
21
config/atm/ml-powered-queries-repo/add-note.js
Normal file
21
config/atm/ml-powered-queries-repo/add-note.js
Normal file
@@ -0,0 +1,21 @@
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
Logger = require('./logger').Logger;
|
||||
Note = require('./models/note').Note;
|
||||
|
||||
(async () => {
|
||||
if (process.argv.length != 5) {
|
||||
Logger.log("Creates a private note. Usage: node add-note.js <token> <title> <body>")
|
||||
return;
|
||||
}
|
||||
|
||||
// Open the default mongoose connection
|
||||
await mongoose.connect('mongodb://localhost:27017/notes', { useFindAndModify: false });
|
||||
|
||||
const [userToken, title, body] = process.argv.slice(2);
|
||||
await Note.create({ title, body, userToken });
|
||||
|
||||
Logger.log(`Created private note with title ${title} and body ${body} belonging to user with token ${userToken}.`);
|
||||
|
||||
await mongoose.connection.close();
|
||||
})();
|
||||
68
config/atm/ml-powered-queries-repo/app.js
Normal file
68
config/atm/ml-powered-queries-repo/app.js
Normal file
@@ -0,0 +1,68 @@
|
||||
const bodyParser = require('body-parser');
|
||||
const express = require('express');
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
const notesApi = require('./notes-api');
|
||||
const usersApi = require('./users-api');
|
||||
|
||||
const addSampleData = module.exports.addSampleData = async () => {
|
||||
const [userA, userB] = await User.create([
|
||||
{
|
||||
name: "A",
|
||||
token: "tokenA"
|
||||
},
|
||||
{
|
||||
name: "B",
|
||||
token: "tokenB"
|
||||
}
|
||||
]);
|
||||
|
||||
await Note.create([
|
||||
{
|
||||
title: "Public note belonging to A",
|
||||
body: "This is a public note belonging to A",
|
||||
isPublic: true,
|
||||
ownerToken: userA.token
|
||||
},
|
||||
{
|
||||
title: "Public note belonging to B",
|
||||
body: "This is a public note belonging to B",
|
||||
isPublic: true,
|
||||
ownerToken: userB.token
|
||||
},
|
||||
{
|
||||
title: "Private note belonging to A",
|
||||
body: "This is a private note belonging to A",
|
||||
ownerToken: userA.token
|
||||
},
|
||||
{
|
||||
title: "Private note belonging to B",
|
||||
body: "This is a private note belonging to B",
|
||||
ownerToken: userB.token
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
module.exports.startApp = async () => {
|
||||
// Open the default mongoose connection
|
||||
await mongoose.connect('mongodb://mongo:27017/notes', { useFindAndModify: false });
|
||||
// Drop contents of DB
|
||||
mongoose.connection.dropDatabase();
|
||||
// Add some sample data
|
||||
await addSampleData();
|
||||
|
||||
const app = express();
|
||||
|
||||
app.use(bodyParser.json());
|
||||
app.use(bodyParser.urlencoded());
|
||||
|
||||
app.get('/', async (_req, res) => {
|
||||
res.send('Hello World');
|
||||
});
|
||||
|
||||
app.use('/api/notes', notesApi.router);
|
||||
app.use('/api/users', usersApi.router);
|
||||
|
||||
app.listen(3000);
|
||||
Logger.log('Express started on port 3000');
|
||||
};
|
||||
7
config/atm/ml-powered-queries-repo/index.js
Normal file
7
config/atm/ml-powered-queries-repo/index.js
Normal file
@@ -0,0 +1,7 @@
|
||||
const startApp = require('./app').startApp;
|
||||
|
||||
Logger = require('./logger').Logger;
|
||||
Note = require('./models/note').Note;
|
||||
User = require('./models/user').User;
|
||||
|
||||
startApp();
|
||||
5
config/atm/ml-powered-queries-repo/logger.js
Normal file
5
config/atm/ml-powered-queries-repo/logger.js
Normal file
@@ -0,0 +1,5 @@
|
||||
module.exports.Logger = class {
|
||||
log(message, ...objs) {
|
||||
console.log(message, objs);
|
||||
}
|
||||
};
|
||||
8
config/atm/ml-powered-queries-repo/models/note.js
Normal file
8
config/atm/ml-powered-queries-repo/models/note.js
Normal file
@@ -0,0 +1,8 @@
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
module.exports.Note = mongoose.model('Note', new mongoose.Schema({
|
||||
title: String,
|
||||
body: String,
|
||||
ownerToken: String,
|
||||
isPublic: Boolean
|
||||
}));
|
||||
6
config/atm/ml-powered-queries-repo/models/user.js
Normal file
6
config/atm/ml-powered-queries-repo/models/user.js
Normal file
@@ -0,0 +1,6 @@
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
module.exports.User = mongoose.model('User', new mongoose.Schema({
|
||||
name: String,
|
||||
token: String
|
||||
}));
|
||||
44
config/atm/ml-powered-queries-repo/notes-api.js
Normal file
44
config/atm/ml-powered-queries-repo/notes-api.js
Normal file
@@ -0,0 +1,44 @@
|
||||
const express = require('express')
|
||||
|
||||
const router = module.exports.router = express.Router();
|
||||
|
||||
function serializeNote(note) {
|
||||
return {
|
||||
title: note.title,
|
||||
body: note.body
|
||||
};
|
||||
}
|
||||
|
||||
router.post('/find', async (req, res) => {
|
||||
const notes = await Note.find({
|
||||
ownerToken: req.body.token
|
||||
}).exec();
|
||||
res.json({
|
||||
notes: notes.map(serializeNote)
|
||||
});
|
||||
});
|
||||
|
||||
router.get('/findPublic', async (_req, res) => {
|
||||
const notes = await Note.find({
|
||||
isPublic: true
|
||||
}).exec();
|
||||
res.json({
|
||||
notes: notes.map(serializeNote)
|
||||
});
|
||||
});
|
||||
|
||||
router.post('/findVisible', async (req, res) => {
|
||||
const notes = await Note.find({
|
||||
$or: [
|
||||
{
|
||||
isPublic: true
|
||||
},
|
||||
{
|
||||
ownerToken: req.body.token
|
||||
}
|
||||
]
|
||||
}).exec();
|
||||
res.json({
|
||||
notes: notes.map(serializeNote)
|
||||
});
|
||||
});
|
||||
37
config/atm/ml-powered-queries-repo/read-notes.js
Normal file
37
config/atm/ml-powered-queries-repo/read-notes.js
Normal file
@@ -0,0 +1,37 @@
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
Logger = require('./logger').Logger;
|
||||
Note = require('./models/note').Note;
|
||||
User = require('./models/user').User;
|
||||
|
||||
(async () => {
|
||||
if (process.argv.length != 3) {
|
||||
Logger.log("Outputs all notes visible to a user. Usage: node read-notes.js <token>")
|
||||
return;
|
||||
}
|
||||
|
||||
// Open the default mongoose connection
|
||||
await mongoose.connect('mongodb://localhost:27017/notes', { useFindAndModify: false });
|
||||
|
||||
const ownerToken = process.argv[2];
|
||||
|
||||
const user = await User.findOne({
|
||||
token: ownerToken
|
||||
}).exec();
|
||||
|
||||
const notes = await Note.find({
|
||||
$or: [
|
||||
{ isPublic: true },
|
||||
{ ownerToken }
|
||||
]
|
||||
}).exec();
|
||||
|
||||
notes.map(note => {
|
||||
Logger.log("Title:" + note.title);
|
||||
Logger.log("By:" + user.name);
|
||||
Logger.log("Body:" + note.body);
|
||||
Logger.log();
|
||||
});
|
||||
|
||||
await mongoose.connection.close();
|
||||
})();
|
||||
25
config/atm/ml-powered-queries-repo/users-api.js
Normal file
25
config/atm/ml-powered-queries-repo/users-api.js
Normal file
@@ -0,0 +1,25 @@
|
||||
const express = require('express')
|
||||
|
||||
Logger = require('./logger').Logger;
|
||||
const router = module.exports.router = express.Router();
|
||||
|
||||
router.post('/updateName', async (req, res) => {
|
||||
Logger.log("/updateName called with new name", req.body.name);
|
||||
await User.findOneAndUpdate({
|
||||
token: req.body.token
|
||||
}, {
|
||||
name: req.body.name
|
||||
}).exec();
|
||||
res.json({
|
||||
name: req.body.name
|
||||
});
|
||||
});
|
||||
|
||||
router.post('/getName', async (req, res) => {
|
||||
const user = await User.findOne({
|
||||
token: req.body.token
|
||||
}).exec();
|
||||
res.json({
|
||||
name: user.name
|
||||
});
|
||||
});
|
||||
@@ -3,4 +3,4 @@ groups:
|
||||
- cpp
|
||||
- examples
|
||||
dependencies:
|
||||
codeql/cpp-all: "*"
|
||||
codeql/cpp-all: ${workspace}
|
||||
|
||||
@@ -6,4 +6,4 @@ extractor: cpp
|
||||
library: true
|
||||
upgrades: upgrades
|
||||
dependencies:
|
||||
codeql/ssa: 0.0.1
|
||||
codeql/ssa: ${workspace}
|
||||
|
||||
@@ -4,8 +4,8 @@ groups:
|
||||
- cpp
|
||||
- queries
|
||||
dependencies:
|
||||
codeql/cpp-all: "*"
|
||||
codeql/suite-helpers: "*"
|
||||
codeql/cpp-all: ${workspace}
|
||||
codeql/suite-helpers: ${workspace}
|
||||
suites: codeql-suites
|
||||
extractor: cpp
|
||||
defaultSuiteFile: codeql-suites/cpp-code-scanning.qls
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
name: codeql/cpp-tests
|
||||
groups: [cpp, test]
|
||||
dependencies:
|
||||
codeql/cpp-all: "*"
|
||||
codeql/cpp-queries: "*"
|
||||
codeql/cpp-all: ${workspace}
|
||||
codeql/cpp-queries: ${workspace}
|
||||
extractor: cpp
|
||||
tests: .
|
||||
|
||||
@@ -3,19 +3,20 @@
|
||||
| nested.cpp:21:23:21:26 | fmt0 | The format string argument to snprintf should be constant to prevent security issues and other potential errors. |
|
||||
| nested.cpp:79:32:79:38 | call to get_fmt | The format string argument to diagnostic should be constant to prevent security issues and other potential errors. |
|
||||
| nested.cpp:87:18:87:20 | fmt | The format string argument to diagnostic should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:50:10:50:21 | call to make_message | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:56:12:56:16 | hello | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:59:12:59:21 | call to const_wash | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:60:12:60:26 | ... + ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:61:12:61:17 | + ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:62:12:62:18 | * ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:63:12:63:18 | & ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:64:12:64:39 | ... + ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:66:10:66:35 | ... + ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:69:12:69:20 | ... + ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:75:12:75:16 | hello | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:81:12:81:16 | hello | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:87:12:87:16 | hello | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:92:12:92:18 | ++ ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:109:12:109:24 | new[] | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:129:20:129:26 | access to array | The format string argument to sprintf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:51:10:51:21 | call to make_message | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:57:12:57:16 | hello | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:60:12:60:21 | call to const_wash | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:61:12:61:26 | ... + ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:62:12:62:17 | + ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:63:12:63:18 | * ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:64:12:64:18 | & ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:65:12:65:39 | ... + ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:67:10:67:35 | ... + ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:70:12:70:20 | ... + ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:76:12:76:16 | hello | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:82:12:82:16 | hello | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:88:12:88:16 | hello | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:93:12:93:18 | ++ ... | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:110:12:110:24 | new[] | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:130:20:130:26 | access to array | The format string argument to sprintf should be constant to prevent security issues and other potential errors. |
|
||||
| test.cpp:157:12:157:15 | data | The format string argument to printf should be constant to prevent security issues and other potential errors. |
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
extern "C" int printf(const char *fmt, ...);
|
||||
extern "C" int sprintf(char *buf, const char *fmt, ...);
|
||||
extern "C" char *gettext (const char *);
|
||||
extern "C" char *gettext(const char *);
|
||||
extern "C" char *strcpy(char *dst, const char *src);
|
||||
|
||||
#define MYSPRINTF sprintf
|
||||
|
||||
@@ -150,3 +151,8 @@ void print_ith_message() {
|
||||
set_value_of(&i);
|
||||
printf(messages[i], 1U); // GOOD
|
||||
}
|
||||
|
||||
void fmt_via_strcpy(char *data) {
|
||||
strcpy(data, "some string");
|
||||
printf(data); // BAD
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name: codeql/cpp-tests-cwe-190-tainted
|
||||
groups: [cpp, test]
|
||||
dependencies:
|
||||
codeql/cpp-all: "*"
|
||||
codeql/cpp-queries: "*"
|
||||
codeql/cpp-all: ${workspace}
|
||||
codeql/cpp-queries: ${workspace}
|
||||
extractor: cpp
|
||||
tests: .
|
||||
|
||||
@@ -5,4 +5,4 @@ groups:
|
||||
- solorigate
|
||||
library: true
|
||||
dependencies:
|
||||
codeql/csharp-all: "*"
|
||||
codeql/csharp-all: ${workspace}
|
||||
|
||||
@@ -5,5 +5,5 @@ groups:
|
||||
- solorigate
|
||||
defaultSuiteFile: codeql-suites/solorigate.qls
|
||||
dependencies:
|
||||
codeql/csharp-all: "*"
|
||||
codeql/csharp-solorigate-all: "*"
|
||||
codeql/csharp-all: ${workspace}
|
||||
codeql/csharp-solorigate-all: ${workspace}
|
||||
|
||||
@@ -4,9 +4,9 @@ groups:
|
||||
- solorigate
|
||||
- test
|
||||
dependencies:
|
||||
codeql/csharp-all: "*"
|
||||
codeql/csharp-queries: "*"
|
||||
codeql/csharp-solorigate-all: "*"
|
||||
codeql/csharp-solorigate-queries: "*"
|
||||
codeql/csharp-all: ${workspace}
|
||||
codeql/csharp-queries: ${workspace}
|
||||
codeql/csharp-solorigate-all: ${workspace}
|
||||
codeql/csharp-solorigate-queries: ${workspace}
|
||||
extractor: csharp
|
||||
tests: .
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql-csharp-consistency-queries
|
||||
groups: [csharp, test, consistency-queries]
|
||||
dependencies:
|
||||
codeql/csharp-all: "*"
|
||||
codeql/csharp-all: ${workspace}
|
||||
extractor: csharp
|
||||
|
||||
@@ -3,4 +3,4 @@ groups:
|
||||
- csharp
|
||||
- examples
|
||||
dependencies:
|
||||
codeql/csharp-all: "*"
|
||||
codeql/csharp-all: ${workspace}
|
||||
|
||||
@@ -6,4 +6,4 @@ extractor: csharp
|
||||
library: true
|
||||
upgrades: upgrades
|
||||
dependencies:
|
||||
codeql/ssa: 0.0.1
|
||||
codeql/ssa: ${workspace}
|
||||
|
||||
@@ -1067,6 +1067,59 @@ private predicate variableReadPseudo(ControlFlow::BasicBlock bb, int i, Ssa::Sou
|
||||
capturedReadIn(bb, i, v, _, _, _)
|
||||
}
|
||||
|
||||
pragma[noinline]
|
||||
private predicate adjacentDefRead(
|
||||
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2,
|
||||
SsaInput::SourceVariable v
|
||||
) {
|
||||
adjacentDefRead(def, bb1, i1, bb2, i2) and
|
||||
v = def.getSourceVariable()
|
||||
}
|
||||
|
||||
private predicate adjacentDefReachesRead(
|
||||
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2
|
||||
) {
|
||||
exists(SsaInput::SourceVariable v | adjacentDefRead(def, bb1, i1, bb2, i2, v) |
|
||||
def.definesAt(v, bb1, i1)
|
||||
or
|
||||
SsaInput::variableRead(bb1, i1, v, true)
|
||||
)
|
||||
or
|
||||
exists(SsaInput::BasicBlock bb3, int i3 |
|
||||
adjacentDefReachesRead(def, bb1, i1, bb3, i3) and
|
||||
SsaInput::variableRead(bb3, i3, _, false) and
|
||||
adjacentDefRead(def, bb3, i3, bb2, i2)
|
||||
)
|
||||
}
|
||||
|
||||
/** Same as `adjacentDefRead`, but skips uncertain reads. */
|
||||
pragma[nomagic]
|
||||
private predicate adjacentDefSkipUncertainReads(
|
||||
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2
|
||||
) {
|
||||
adjacentDefReachesRead(def, bb1, i1, bb2, i2) and
|
||||
SsaInput::variableRead(bb2, i2, _, true)
|
||||
}
|
||||
|
||||
private predicate adjacentDefReachesUncertainRead(
|
||||
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2
|
||||
) {
|
||||
adjacentDefReachesRead(def, bb1, i1, bb2, i2) and
|
||||
SsaInput::variableRead(bb2, i2, _, false)
|
||||
}
|
||||
|
||||
/** Same as `lastRefRedef`, but skips uncertain reads. */
|
||||
pragma[nomagic]
|
||||
private predicate lastRefSkipUncertainReads(Definition def, SsaInput::BasicBlock bb, int i) {
|
||||
lastRef(def, bb, i) and
|
||||
not SsaInput::variableRead(bb, i, def.getSourceVariable(), false)
|
||||
or
|
||||
exists(SsaInput::BasicBlock bb0, int i0 |
|
||||
lastRef(def, bb0, i0) and
|
||||
adjacentDefReachesUncertainRead(def, bb, i, bb0, i0)
|
||||
)
|
||||
}
|
||||
|
||||
cached
|
||||
private module Cached {
|
||||
cached
|
||||
@@ -1237,7 +1290,7 @@ private module Cached {
|
||||
predicate firstReadSameVar(Definition def, ControlFlow::Node cfn) {
|
||||
exists(ControlFlow::BasicBlock bb1, int i1, ControlFlow::BasicBlock bb2, int i2 |
|
||||
def.definesAt(_, bb1, i1) and
|
||||
adjacentDefNoUncertainReads(def, bb1, i1, bb2, i2) and
|
||||
adjacentDefSkipUncertainReads(def, bb1, i1, bb2, i2) and
|
||||
cfn = bb2.getNode(i2)
|
||||
)
|
||||
}
|
||||
@@ -1252,20 +1305,27 @@ private module Cached {
|
||||
exists(ControlFlow::BasicBlock bb1, int i1, ControlFlow::BasicBlock bb2, int i2 |
|
||||
cfn1 = bb1.getNode(i1) and
|
||||
variableReadActual(bb1, i1, _) and
|
||||
adjacentDefNoUncertainReads(def, bb1, i1, bb2, i2) and
|
||||
adjacentDefSkipUncertainReads(def, bb1, i1, bb2, i2) and
|
||||
cfn2 = bb2.getNode(i2)
|
||||
)
|
||||
}
|
||||
|
||||
/** Same as `lastRefRedef`, but skips uncertain reads. */
|
||||
cached
|
||||
predicate lastRefBeforeRedef(Definition def, ControlFlow::BasicBlock bb, int i, Definition next) {
|
||||
lastRefRedefNoUncertainReads(def, bb, i, next)
|
||||
lastRefRedef(def, bb, i, next) and
|
||||
not SsaInput::variableRead(bb, i, def.getSourceVariable(), false)
|
||||
or
|
||||
exists(SsaInput::BasicBlock bb0, int i0 |
|
||||
lastRefRedef(def, bb0, i0, next) and
|
||||
adjacentDefReachesUncertainRead(def, bb, i, bb0, i0)
|
||||
)
|
||||
}
|
||||
|
||||
cached
|
||||
predicate lastReadSameVar(Definition def, ControlFlow::Node cfn) {
|
||||
exists(ControlFlow::BasicBlock bb, int i |
|
||||
lastRefNoUncertainReads(def, bb, i) and
|
||||
lastRefSkipUncertainReads(def, bb, i) and
|
||||
variableReadActual(bb, i, _) and
|
||||
cfn = bb.getNode(i)
|
||||
)
|
||||
|
||||
@@ -7,5 +7,5 @@ suites: codeql-suites
|
||||
extractor: csharp
|
||||
defaultSuiteFile: codeql-suites/csharp-code-scanning.qls
|
||||
dependencies:
|
||||
codeql/csharp-all: "*"
|
||||
codeql/suite-helpers: "*"
|
||||
codeql/csharp-all: ${workspace}
|
||||
codeql/suite-helpers: ${workspace}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
name: codeql-csharp-tests
|
||||
groups: [csharp, test]
|
||||
dependencies:
|
||||
codeql/csharp-all: "*"
|
||||
codeql/csharp-queries: "*"
|
||||
codeql/csharp-all: ${workspace}
|
||||
codeql/csharp-queries: ${workspace}
|
||||
extractor: csharp
|
||||
tests: .
|
||||
|
||||
@@ -3,4 +3,4 @@ groups:
|
||||
- go
|
||||
- examples
|
||||
dependencies:
|
||||
codeql/go-all: "*"
|
||||
codeql/go-all: ${workspace}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
dependencies:
|
||||
codeql/suite-helpers:
|
||||
version: 0.0.2
|
||||
dependencies: {}
|
||||
compiled: false
|
||||
lockVersion: 1.0.0
|
||||
|
||||
@@ -7,5 +7,5 @@ suites: codeql-suites
|
||||
extractor: go
|
||||
defaultSuiteFile: codeql-suites/go-code-scanning.qls
|
||||
dependencies:
|
||||
codeql/go-all: "*"
|
||||
codeql/suite-helpers: "*"
|
||||
codeql/go-all: ${workspace}
|
||||
codeql/suite-helpers: ${workspace}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
dependencies:
|
||||
codeql/suite-helpers:
|
||||
version: 0.0.2
|
||||
dependencies: {}
|
||||
compiled: false
|
||||
lockVersion: 1.0.0
|
||||
|
||||
@@ -3,7 +3,7 @@ groups:
|
||||
- go
|
||||
- test
|
||||
dependencies:
|
||||
codeql/go-queries: "*"
|
||||
codeql/go-all: "*"
|
||||
codeql/go-examples: "*"
|
||||
codeql/go-queries: ${workspace}
|
||||
codeql/go-all: ${workspace}
|
||||
codeql/go-examples: ${workspace}
|
||||
extractor: go
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.github.codeql
|
||||
|
||||
import com.github.codeql.comments.CommentExtractor
|
||||
import com.github.codeql.utils.*
|
||||
import com.github.codeql.utils.versions.allOverriddenIncludingSelf
|
||||
import com.github.codeql.utils.versions.functionN
|
||||
import com.github.codeql.utils.versions.isUnderscoreParameter
|
||||
import com.semmle.extractor.java.OdasaOutput
|
||||
@@ -1505,9 +1506,7 @@ open class KotlinFileExtractor(
|
||||
tw.writeHasLocation(varId, locId)
|
||||
tw.writeExprs_localvariabledeclexpr(exprId, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(exprId, type.kotlinResult.id)
|
||||
tw.writeHasLocation(exprId, locId)
|
||||
tw.writeCallableEnclosingExpr(exprId, callable)
|
||||
tw.writeStatementEnclosingExpr(exprId, enclosingStmt)
|
||||
extractExprContext(exprId, locId, callable, enclosingStmt)
|
||||
val i = v.initializer
|
||||
if (i != null && extractInitializer) {
|
||||
extractExpressionExpr(i, callable, exprId, 0, enclosingStmt)
|
||||
@@ -1630,9 +1629,7 @@ open class KotlinFileExtractor(
|
||||
|
||||
private fun unaryOp(id: Label<out DbExpr>, c: IrCall, callable: Label<out DbCallable>, enclosingStmt: Label<out DbStmt>) {
|
||||
val locId = tw.getLocation(c)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
|
||||
val dr = c.dispatchReceiver
|
||||
if (dr != null) {
|
||||
@@ -1653,9 +1650,7 @@ open class KotlinFileExtractor(
|
||||
|
||||
private fun binOp(id: Label<out DbExpr>, c: IrCall, callable: Label<out DbCallable>, enclosingStmt: Label<out DbStmt>) {
|
||||
val locId = tw.getLocation(c)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
|
||||
val dr = c.dispatchReceiver
|
||||
if (dr != null) {
|
||||
@@ -1767,9 +1762,7 @@ open class KotlinFileExtractor(
|
||||
|
||||
tw.writeExprs_methodaccess(id, type.javaResult.id, callsiteParent, childIdx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, enclosingCallable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, enclosingCallable, enclosingStmt)
|
||||
|
||||
// The caller should have warned about this before, so we don't repeat the warning here.
|
||||
if (methodLabel != null)
|
||||
@@ -1817,7 +1810,7 @@ open class KotlinFileExtractor(
|
||||
}
|
||||
|
||||
private fun getDefaultsMethodLabel(f: IrFunction): Label<out DbCallable> {
|
||||
val defaultsMethodName = getDefaultsMethodName(f)
|
||||
val defaultsMethodName = if (f is IrConstructor) "<init>" else getDefaultsMethodName(f)
|
||||
val normalArgTypes = getDefaultsMethodArgTypes(f)
|
||||
val extensionParamType = f.extensionReceiverParameter?.let { erase(it.type) }
|
||||
|
||||
@@ -1855,16 +1848,27 @@ open class KotlinFileExtractor(
|
||||
// Ensure the real target gets extracted, as we might not every directly touch it thanks to this call being redirected to a $default method.
|
||||
useFunction<DbCallable>(callTarget)
|
||||
}
|
||||
val defaultMethodLabel = getDefaultsMethodLabel(callTarget)
|
||||
val id = extractMethodAccessWithoutArgs(resultType, locId, enclosingCallable, callsiteParent, childIdx, enclosingStmt, defaultMethodLabel)
|
||||
|
||||
if (callTarget.isLocalFunction()) {
|
||||
extractTypeAccess(getLocallyVisibleFunctionLabels(callTarget).type, locId, id, -1, enclosingCallable, enclosingStmt)
|
||||
} else {
|
||||
extractStaticTypeAccessQualifierUnchecked(callTarget.parent, id, locId, enclosingCallable, enclosingStmt)
|
||||
// Default parameter values are inherited by overrides; in this case the call should dispatch against the $default method belonging to the class
|
||||
// that specified the default values, which will in turn dynamically dispatch back to the relevant override.
|
||||
val overriddenCallTarget = (callTarget as? IrSimpleFunction)?.allOverriddenIncludingSelf()?.firstOrNull {
|
||||
it.overriddenSymbols.isEmpty() && it.valueParameters.any { p -> p.defaultValue != null }
|
||||
} ?: callTarget
|
||||
if (isExternalDeclaration(overriddenCallTarget)) {
|
||||
// Likewise, ensure the overridden target gets extracted.
|
||||
useFunction<DbCallable>(overriddenCallTarget)
|
||||
}
|
||||
|
||||
extractDefaultsCallArguments(id, callTarget, enclosingCallable, enclosingStmt, valueArguments, dispatchReceiver, extensionReceiver)
|
||||
val defaultMethodLabel = getDefaultsMethodLabel(overriddenCallTarget)
|
||||
val id = extractMethodAccessWithoutArgs(resultType, locId, enclosingCallable, callsiteParent, childIdx, enclosingStmt, defaultMethodLabel)
|
||||
|
||||
if (overriddenCallTarget.isLocalFunction()) {
|
||||
extractTypeAccess(getLocallyVisibleFunctionLabels(overriddenCallTarget).type, locId, id, -1, enclosingCallable, enclosingStmt)
|
||||
} else {
|
||||
extractStaticTypeAccessQualifierUnchecked(overriddenCallTarget.parent, id, locId, enclosingCallable, enclosingStmt)
|
||||
}
|
||||
|
||||
extractDefaultsCallArguments(id, overriddenCallTarget, enclosingCallable, enclosingStmt, valueArguments, dispatchReceiver, extensionReceiver)
|
||||
}
|
||||
|
||||
private fun extractDefaultsCallArguments(
|
||||
@@ -1969,6 +1973,15 @@ open class KotlinFileExtractor(
|
||||
target
|
||||
}
|
||||
|
||||
private fun callUsesDefaultArguments(callTarget: IrFunction, valueArguments: List<IrExpression?>): Boolean {
|
||||
val varargParam = callTarget.valueParameters.withIndex().find { it.value.isVararg }
|
||||
// If the vararg param is the only one not specified, and it has no default value, then we don't need to call a $default method,
|
||||
// as omitting it already implies passing an empty vararg array.
|
||||
val nullAllowedIdx = if (varargParam != null && varargParam.value.defaultValue == null) varargParam.index else -1
|
||||
return valueArguments.withIndex().any { (index, it) -> it == null && index != nullAllowedIdx }
|
||||
}
|
||||
|
||||
|
||||
fun extractRawMethodAccess(
|
||||
syntacticCallTarget: IrFunction,
|
||||
locElement: IrElement,
|
||||
@@ -1985,12 +1998,8 @@ open class KotlinFileExtractor(
|
||||
superQualifierSymbol: IrClassSymbol? = null) {
|
||||
|
||||
val locId = tw.getLocation(locElement)
|
||||
val varargParam = syntacticCallTarget.valueParameters.withIndex().find { it.value.isVararg }
|
||||
// If the vararg param is the only one not specified, and it has no default value, then we don't need to call a $default method,
|
||||
// as omitting it already implies passing an empty vararg array.
|
||||
val nullAllowedIdx = if (varargParam != null && varargParam.value.defaultValue == null) varargParam.index else -1
|
||||
|
||||
if (valueArguments.withIndex().any { (index, it) -> it == null && index != nullAllowedIdx }) {
|
||||
if (callUsesDefaultArguments(syntacticCallTarget, valueArguments)) {
|
||||
extractsDefaultsCall(
|
||||
syntacticCallTarget,
|
||||
locId,
|
||||
@@ -2370,19 +2379,14 @@ open class KotlinFileExtractor(
|
||||
|
||||
tw.writeExprs_errorexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, tw.getLocation(c))
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, tw.getLocation(c), callable, enclosingStmt)
|
||||
} else {
|
||||
logger.errorElement("Unexpected enum type rep ${enumType.javaClass}", c)
|
||||
}
|
||||
}
|
||||
|
||||
fun binopReceiver(id: Label<out DbExpr>, receiver: IrExpression?, receiverDescription: String) {
|
||||
val locId = tw.getLocation(c)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, tw.getLocation(c), callable, enclosingStmt)
|
||||
|
||||
if(receiver == null) {
|
||||
logger.errorElement("$receiverDescription not found", c)
|
||||
@@ -2405,10 +2409,7 @@ open class KotlinFileExtractor(
|
||||
}
|
||||
|
||||
fun unaryopReceiver(id: Label<out DbExpr>, receiver: IrExpression?, receiverDescription: String) {
|
||||
val locId = tw.getLocation(c)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, tw.getLocation(c), callable, enclosingStmt)
|
||||
|
||||
if(receiver == null) {
|
||||
logger.errorElement("$receiverDescription not found", c)
|
||||
@@ -2702,8 +2703,7 @@ open class KotlinFileExtractor(
|
||||
tw.writeExprs_arraycreationexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
val locId = tw.getLocation(c)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
|
||||
if (c.typeArgumentsCount == 1) {
|
||||
val typeArgument = c.getTypeArgument(0)
|
||||
@@ -2841,9 +2841,7 @@ open class KotlinFileExtractor(
|
||||
val arrayType = useType(array.type)
|
||||
tw.writeExprs_arrayaccess(arrayAccessId, arrayType.javaResult.id, assignId, 0)
|
||||
tw.writeExprsKotlinType(arrayAccessId, arrayType.kotlinResult.id)
|
||||
tw.writeHasLocation(arrayAccessId, locId)
|
||||
tw.writeCallableEnclosingExpr(arrayAccessId, callable)
|
||||
tw.writeStatementEnclosingExpr(arrayAccessId, enclosingStmt)
|
||||
extractExprContext(arrayAccessId, locId, callable, enclosingStmt)
|
||||
|
||||
extractExpressionExpr(array, callable, arrayAccessId, 0, enclosingStmt)
|
||||
extractExpressionExpr(arrayIdx, callable, arrayAccessId, 1, enclosingStmt)
|
||||
@@ -2882,9 +2880,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(c.type)
|
||||
tw.writeExprs_unsafecoerceexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
extractTypeAccessRecursive(typeArg, locId, id, 0, callable, enclosingStmt)
|
||||
extractExpressionExpr(valueArg, callable, id, 1, enclosingStmt)
|
||||
}
|
||||
@@ -2974,8 +2970,7 @@ open class KotlinFileExtractor(
|
||||
tw.writeExprs_arraycreationexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
val locId = tw.getLocation(locElement)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, enclosingCallable)
|
||||
extractExprContext(id, locId, enclosingCallable, enclosingStmt)
|
||||
|
||||
if (elementType != null) {
|
||||
val typeContext = if (allowPrimitiveElementType) TypeContext.OTHER else TypeContext.GENERIC_ARGUMENT
|
||||
@@ -2986,9 +2981,7 @@ open class KotlinFileExtractor(
|
||||
val initId = tw.getFreshIdLabel<DbArrayinit>()
|
||||
tw.writeExprs_arrayinit(initId, type.javaResult.id, id, -2)
|
||||
tw.writeExprsKotlinType(initId, type.kotlinResult.id)
|
||||
tw.writeHasLocation(initId, locId)
|
||||
tw.writeCallableEnclosingExpr(initId, enclosingCallable)
|
||||
tw.writeStatementEnclosingExpr(initId, enclosingStmt)
|
||||
extractExprContext(initId, locId, enclosingCallable, enclosingStmt)
|
||||
elementList.elements.forEachIndexed { i, arg -> extractVarargElement(arg, enclosingCallable, initId, i, enclosingStmt) }
|
||||
|
||||
extractConstantInteger(elementList.elements.size, locId, id, 0, enclosingCallable, enclosingStmt)
|
||||
@@ -2999,7 +2992,7 @@ open class KotlinFileExtractor(
|
||||
private fun extractNewExpr(
|
||||
methodId: Label<out DbConstructor>,
|
||||
constructedType: TypeResults,
|
||||
locId: Label<out DbLocation>,
|
||||
locId: Label<DbLocation>,
|
||||
parent: Label<out DbExprparent>,
|
||||
idx: Int,
|
||||
callable: Label<out DbCallable>,
|
||||
@@ -3008,9 +3001,7 @@ open class KotlinFileExtractor(
|
||||
val id = tw.getFreshIdLabel<DbNewexpr>()
|
||||
tw.writeExprs_newexpr(id, constructedType.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, constructedType.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
tw.writeCallableBinding(id, methodId)
|
||||
return id
|
||||
}
|
||||
@@ -3019,7 +3010,7 @@ open class KotlinFileExtractor(
|
||||
calledConstructor: IrFunction,
|
||||
constructorTypeArgs: List<IrTypeArgument>?,
|
||||
constructedType: TypeResults,
|
||||
locId: Label<out DbLocation>,
|
||||
locId: Label<DbLocation>,
|
||||
parent: Label<out DbExprparent>,
|
||||
idx: Int,
|
||||
callable: Label<out DbCallable>,
|
||||
@@ -3060,8 +3051,7 @@ open class KotlinFileExtractor(
|
||||
val valueArgs = (0 until e.valueArgumentsCount).map { e.getValueArgument(it) }
|
||||
// For now, don't try to use default methods for enum constructor calls,
|
||||
// which have null arguments even though the parameters don't give default values.
|
||||
val anyDefaultArgs = e !is IrEnumConstructorCall && valueArgs.any { it == null }
|
||||
val id = if (anyDefaultArgs) {
|
||||
val id = if (e !is IrEnumConstructorCall && callUsesDefaultArguments(e.symbol.owner, valueArgs)) {
|
||||
extractNewExpr(getDefaultsMethodLabel(e.symbol.owner).cast(), type, locId, parent, idx, callable, enclosingStmt).also {
|
||||
extractDefaultsCallArguments(it, e.symbol.owner, callable, enclosingStmt, valueArgs, null, null)
|
||||
}
|
||||
@@ -3136,9 +3126,7 @@ open class KotlinFileExtractor(
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_stmtexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
return StmtParent(id, 0)
|
||||
}
|
||||
override fun expr(e: IrExpression, callable: Label<out DbCallable>): ExprParent {
|
||||
@@ -3321,9 +3309,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(arrayVarInitializer.type)
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprsKotlinType(assignId, type.kotlinResult.id)
|
||||
tw.writeHasLocation(assignId, locId)
|
||||
tw.writeCallableEnclosingExpr(assignId, callable)
|
||||
tw.writeStatementEnclosingExpr(assignId, exprParent.enclosingStmt)
|
||||
extractExprContext(assignId, locId, callable, exprParent.enclosingStmt)
|
||||
|
||||
writeUpdateInPlaceExprFun(tw, assignId, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
|
||||
@@ -3332,9 +3318,7 @@ open class KotlinFileExtractor(
|
||||
val elementType = useType(updateRhs.type)
|
||||
tw.writeExprs_arrayaccess(lhsId, elementType.javaResult.id, assignId, 0)
|
||||
tw.writeExprsKotlinType(lhsId, elementType.kotlinResult.id)
|
||||
tw.writeHasLocation(lhsId, locId)
|
||||
tw.writeCallableEnclosingExpr(lhsId, callable)
|
||||
tw.writeStatementEnclosingExpr(lhsId, exprParent.enclosingStmt)
|
||||
extractExprContext(lhsId, locId, callable, exprParent.enclosingStmt)
|
||||
extractExpressionExpr(arrayVarInitializer, callable, lhsId, 0, exprParent.enclosingStmt)
|
||||
extractExpressionExpr(indexVarInitializer, callable, lhsId, 1, exprParent.enclosingStmt)
|
||||
|
||||
@@ -3389,7 +3373,7 @@ open class KotlinFileExtractor(
|
||||
extractExprContext(it, locId, callable, enclosingStmt)
|
||||
}
|
||||
|
||||
private fun extractConstantInteger(v: Int, locId: Label<DbLocation>, parent: Label<out DbExprparent>, idx: Int, callable: Label<out DbCallable>, enclosingStmt: Label<out DbStmt>) =
|
||||
private fun extractConstantInteger(v: Number, locId: Label<DbLocation>, parent: Label<out DbExprparent>, idx: Int, callable: Label<out DbCallable>, enclosingStmt: Label<out DbStmt>) =
|
||||
tw.getFreshIdLabel<DbIntegerliteral>().also {
|
||||
val type = useType(pluginContext.irBuiltIns.intType)
|
||||
tw.writeExprs_integerliteral(it, type.javaResult.id, parent, idx)
|
||||
@@ -3523,9 +3507,7 @@ open class KotlinFileExtractor(
|
||||
val methodId = tw.getLabelFor<DbMethod>(methodLabel)
|
||||
tw.writeExprs_methodaccess(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
tw.writeCallableBinding(id, methodId)
|
||||
}
|
||||
else {
|
||||
@@ -3551,96 +3533,79 @@ open class KotlinFileExtractor(
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_stringtemplateexpr(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
e.arguments.forEachIndexed { i, a ->
|
||||
extractExpressionExpr(a, callable, id, i, exprParent.enclosingStmt)
|
||||
}
|
||||
}
|
||||
is IrConst<*> -> {
|
||||
val exprParent = parent.expr(e, callable)
|
||||
when(val v = e.value) {
|
||||
is Int, is Short, is Byte -> {
|
||||
val id = tw.getFreshIdLabel<DbIntegerliteral>()
|
||||
val type = useType(e.type)
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_integerliteral(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
tw.writeNamestrings(v.toString(), v.toString(), id)
|
||||
} is Long -> {
|
||||
val v = e.value
|
||||
when {
|
||||
v is Number && (v is Int || v is Short || v is Byte) -> {
|
||||
extractConstantInteger(v, tw.getLocation(e), exprParent.parent, exprParent.idx, callable, exprParent.enclosingStmt)
|
||||
}
|
||||
v is Long -> {
|
||||
val id = tw.getFreshIdLabel<DbLongliteral>()
|
||||
val type = useType(e.type)
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_longliteral(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
tw.writeNamestrings(v.toString(), v.toString(), id)
|
||||
} is Float -> {
|
||||
}
|
||||
v is Float -> {
|
||||
val id = tw.getFreshIdLabel<DbFloatingpointliteral>()
|
||||
val type = useType(e.type)
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_floatingpointliteral(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
tw.writeNamestrings(v.toString(), v.toString(), id)
|
||||
} is Double -> {
|
||||
}
|
||||
v is Double -> {
|
||||
val id = tw.getFreshIdLabel<DbDoubleliteral>()
|
||||
val type = useType(e.type)
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_doubleliteral(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
tw.writeNamestrings(v.toString(), v.toString(), id)
|
||||
} is Boolean -> {
|
||||
}
|
||||
v is Boolean -> {
|
||||
val id = tw.getFreshIdLabel<DbBooleanliteral>()
|
||||
val type = useType(e.type)
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_booleanliteral(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
tw.writeNamestrings(v.toString(), v.toString(), id)
|
||||
} is Char -> {
|
||||
}
|
||||
v is Char -> {
|
||||
val id = tw.getFreshIdLabel<DbCharacterliteral>()
|
||||
val type = useType(e.type)
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_characterliteral(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
tw.writeNamestrings(v.toString(), v.toString(), id)
|
||||
} is String -> {
|
||||
}
|
||||
v is String -> {
|
||||
val id = tw.getFreshIdLabel<DbStringliteral>()
|
||||
val type = useType(e.type)
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_stringliteral(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
tw.writeNamestrings(v.toString(), v.toString(), id)
|
||||
}
|
||||
null -> {
|
||||
v == null -> {
|
||||
val id = tw.getFreshIdLabel<DbNullliteral>()
|
||||
val type = useType(e.type) // class;kotlin.Nothing
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_nullliteral(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
}
|
||||
else -> {
|
||||
logger.errorElement("Unrecognised IrConst: " + v.javaClass, e)
|
||||
@@ -3679,9 +3644,7 @@ open class KotlinFileExtractor(
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_varaccess(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
|
||||
val owner = getBoundSymbolOwner(e.symbol, e) ?: return
|
||||
|
||||
@@ -3704,15 +3667,11 @@ open class KotlinFileExtractor(
|
||||
// set op plus its RHS, while the varAccess takes its location from `e`.
|
||||
val locId = tw.getLocation(e.startOffset, rhsValue.endOffset)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
|
||||
val lhsId = tw.getFreshIdLabel<DbVaraccess>()
|
||||
val lhsLocId = tw.getLocation(e)
|
||||
tw.writeHasLocation(lhsId, lhsLocId)
|
||||
tw.writeCallableEnclosingExpr(lhsId, callable)
|
||||
tw.writeStatementEnclosingExpr(lhsId, exprParent.enclosingStmt)
|
||||
extractExprContext(lhsId, lhsLocId, callable, exprParent.enclosingStmt)
|
||||
|
||||
when (e) {
|
||||
is IrSetValue -> {
|
||||
@@ -3793,9 +3752,7 @@ open class KotlinFileExtractor(
|
||||
val locId = tw.getLocation(e)
|
||||
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
|
||||
extractExpressionExpr(e.branches[0].condition, callable, id, 0, exprParent.enclosingStmt)
|
||||
|
||||
@@ -3811,9 +3768,7 @@ open class KotlinFileExtractor(
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_whenexpr(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
if(e.origin == IrStatementOrigin.IF) {
|
||||
tw.writeWhen_if(id)
|
||||
}
|
||||
@@ -3836,9 +3791,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(e.type)
|
||||
tw.writeExprs_getclassexpr(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
extractExpressionExpr(e.argument, callable, id, 0, exprParent.enclosingStmt)
|
||||
}
|
||||
is IrTypeOperatorCall -> {
|
||||
@@ -3868,9 +3821,7 @@ open class KotlinFileExtractor(
|
||||
val locId = tw.getLocation(e)
|
||||
tw.writeExprs_varaccess(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
|
||||
tw.writeVariableBinding(id, instance.id)
|
||||
}
|
||||
@@ -3923,9 +3874,7 @@ open class KotlinFileExtractor(
|
||||
val idLambdaExpr = tw.getFreshIdLabel<DbLambdaexpr>()
|
||||
tw.writeExprs_lambdaexpr(idLambdaExpr, ids.type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(idLambdaExpr, ids.type.kotlinResult.id)
|
||||
tw.writeHasLocation(idLambdaExpr, locId)
|
||||
tw.writeCallableEnclosingExpr(idLambdaExpr, callable)
|
||||
tw.writeStatementEnclosingExpr(idLambdaExpr, exprParent.enclosingStmt)
|
||||
extractExprContext(idLambdaExpr, locId, callable, exprParent.enclosingStmt)
|
||||
tw.writeCallableBinding(idLambdaExpr, ids.constructor)
|
||||
|
||||
// todo: fix hard coded block body of lambda
|
||||
@@ -3951,9 +3900,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(e.type)
|
||||
tw.writeExprs_typeliteral(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
extractExprContext(id, locId, callable, exprParent.enclosingStmt)
|
||||
|
||||
extractTypeAccessRecursive(e.classType, locId, id, 0, callable, exprParent.enclosingStmt)
|
||||
}
|
||||
@@ -4006,27 +3953,23 @@ open class KotlinFileExtractor(
|
||||
return null
|
||||
}
|
||||
|
||||
private fun extractSuperAccess(irType: IrType, callable: Label<out DbCallable>, parent: Label<out DbExprparent>, idx: Int, enclosingStmt: Label<out DbStmt>, locId: Label<out DbLocation>) =
|
||||
private fun extractSuperAccess(irType: IrType, callable: Label<out DbCallable>, parent: Label<out DbExprparent>, idx: Int, enclosingStmt: Label<out DbStmt>, locId: Label<DbLocation>) =
|
||||
tw.getFreshIdLabel<DbSuperaccess>().also {
|
||||
val type = useType(irType)
|
||||
tw.writeExprs_superaccess(it, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(it, type.kotlinResult.id)
|
||||
tw.writeHasLocation(it, locId)
|
||||
tw.writeCallableEnclosingExpr(it, callable)
|
||||
tw.writeStatementEnclosingExpr(it, enclosingStmt)
|
||||
extractExprContext(it, locId, callable, enclosingStmt)
|
||||
extractTypeAccessRecursive(irType, locId, it, 0)
|
||||
}
|
||||
|
||||
private fun extractThisAccess(type: TypeResults, callable: Label<out DbCallable>, parent: Label<out DbExprparent>, idx: Int, enclosingStmt: Label<out DbStmt>, locId: Label<out DbLocation>) =
|
||||
private fun extractThisAccess(type: TypeResults, callable: Label<out DbCallable>, parent: Label<out DbExprparent>, idx: Int, enclosingStmt: Label<out DbStmt>, locId: Label<DbLocation>) =
|
||||
tw.getFreshIdLabel<DbThisaccess>().also {
|
||||
tw.writeExprs_thisaccess(it, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(it, type.kotlinResult.id)
|
||||
tw.writeHasLocation(it, locId)
|
||||
tw.writeCallableEnclosingExpr(it, callable)
|
||||
tw.writeStatementEnclosingExpr(it, enclosingStmt)
|
||||
extractExprContext(it, locId, callable, enclosingStmt)
|
||||
}
|
||||
|
||||
private fun extractThisAccess(irType: IrType, callable: Label<out DbCallable>, parent: Label<out DbExprparent>, idx: Int, enclosingStmt: Label<out DbStmt>, locId: Label<out DbLocation>) =
|
||||
private fun extractThisAccess(irType: IrType, callable: Label<out DbCallable>, parent: Label<out DbExprparent>, idx: Int, enclosingStmt: Label<out DbStmt>, locId: Label<DbLocation>) =
|
||||
extractThisAccess(useType(irType), callable, parent, idx, enclosingStmt, locId)
|
||||
|
||||
private fun extractThisAccess(e: IrGetValue, thisParamParent: IrDeclarationParent, exprParent: ExprParent, callable: Label<out DbCallable>) {
|
||||
@@ -4087,20 +4030,18 @@ open class KotlinFileExtractor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun extractVariableAccess(variable: Label<out DbVariable>?, type: TypeResults, locId: Label<out DbLocation>, parent: Label<out DbExprparent>, idx: Int, callable: Label<out DbCallable>, enclosingStmt: Label<out DbStmt>) =
|
||||
private fun extractVariableAccess(variable: Label<out DbVariable>?, type: TypeResults, locId: Label<DbLocation>, parent: Label<out DbExprparent>, idx: Int, callable: Label<out DbCallable>, enclosingStmt: Label<out DbStmt>) =
|
||||
tw.getFreshIdLabel<DbVaraccess>().also {
|
||||
tw.writeExprs_varaccess(it, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(it, type.kotlinResult.id)
|
||||
tw.writeHasLocation(it, locId)
|
||||
tw.writeCallableEnclosingExpr(it, callable)
|
||||
tw.writeStatementEnclosingExpr(it, enclosingStmt)
|
||||
extractExprContext(it, locId, callable, enclosingStmt)
|
||||
|
||||
if (variable != null) {
|
||||
tw.writeVariableBinding(it, variable)
|
||||
}
|
||||
}
|
||||
|
||||
private fun extractVariableAccess(variable: Label<out DbVariable>?, irType: IrType, locId: Label<out DbLocation>, parent: Label<out DbExprparent>, idx: Int, callable: Label<out DbCallable>, enclosingStmt: Label<out DbStmt>) =
|
||||
private fun extractVariableAccess(variable: Label<out DbVariable>?, irType: IrType, locId: Label<DbLocation>, parent: Label<out DbExprparent>, idx: Int, callable: Label<out DbCallable>, enclosingStmt: Label<out DbStmt>) =
|
||||
extractVariableAccess(variable, useType(irType), locId, parent, idx, callable, enclosingStmt)
|
||||
|
||||
private fun extractLoop(
|
||||
@@ -4168,12 +4109,6 @@ open class KotlinFileExtractor(
|
||||
private open inner class GeneratedClassHelper(protected val locId: Label<DbLocation>, protected val ids: GeneratedClassLabels) {
|
||||
protected val classId = ids.type.javaResult.id.cast<DbClass>()
|
||||
|
||||
fun writeExpressionMetadataToTrapFile(id: Label<out DbExpr>, callable: Label<out DbCallable>, stmt: Label<out DbStmt>) {
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, stmt)
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract a parameter to field assignment, such as `this.field = paramName` below:
|
||||
* ```
|
||||
@@ -4246,7 +4181,7 @@ open class KotlinFileExtractor(
|
||||
tw.writeExprs_varaccess(pId, pType.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(pId, pType.kotlinResult.id)
|
||||
tw.writeVariableBinding(pId, variable)
|
||||
writeExpressionMetadataToTrapFile(pId, callable, stmt)
|
||||
extractExprContext(pId, locId, callable, stmt)
|
||||
return pId
|
||||
}
|
||||
|
||||
@@ -4298,7 +4233,7 @@ open class KotlinFileExtractor(
|
||||
tw.writeExprs_varaccess(accessId, fieldType.javaResult.id, parent, 0)
|
||||
tw.writeExprsKotlinType(accessId, fieldType.kotlinResult.id)
|
||||
|
||||
writeExpressionMetadataToTrapFile(accessId, labels.methodId, stmt)
|
||||
extractExprContext(accessId, locId, labels.methodId, stmt)
|
||||
|
||||
val fieldId = useField(target.owner)
|
||||
tw.writeVariableBinding(accessId, fieldId)
|
||||
@@ -4357,7 +4292,7 @@ open class KotlinFileExtractor(
|
||||
callId
|
||||
}
|
||||
|
||||
writeExpressionMetadataToTrapFile(callId, labels.methodId, retId)
|
||||
extractExprContext(callId, locId, labels.methodId, retId)
|
||||
|
||||
val callableId = useFunction<DbCallable>(target.owner.realOverrideTarget, classTypeArgsIncludingOuterClasses)
|
||||
tw.writeCallableBinding(callId.cast<DbCaller>(), callableId)
|
||||
@@ -4394,7 +4329,6 @@ open class KotlinFileExtractor(
|
||||
// In case we're extracting a big arity function reference:
|
||||
addArgumentsToInvocationInInvokeNBody(
|
||||
bigArityParameterTypes, labels, retId, callId, locId,
|
||||
{ exp -> writeExpressionMetadataToTrapFile(exp, labels.methodId, retId) },
|
||||
extensionIdxOffset, useFirstArgAsDispatch, dispatchReceiverIdx)
|
||||
} else {
|
||||
val dispatchIdxOffset = if (useFirstArgAsDispatch) 1 else 0
|
||||
@@ -4448,7 +4382,7 @@ open class KotlinFileExtractor(
|
||||
val callId = tw.getFreshIdLabel<DbMethodaccess>()
|
||||
tw.writeExprs_methodaccess(callId, callType.javaResult.id, retId, 0)
|
||||
tw.writeExprsKotlinType(callId, callType.kotlinResult.id)
|
||||
this.writeExpressionMetadataToTrapFile(callId, invokeLabels.methodId, retId)
|
||||
extractExprContext(callId, locId, invokeLabels.methodId, retId)
|
||||
|
||||
tw.writeCallableBinding(callId, getId)
|
||||
|
||||
@@ -4606,9 +4540,7 @@ open class KotlinFileExtractor(
|
||||
val exprParent = parent.expr(propertyReferenceExpr, callable)
|
||||
tw.writeExprs_propertyref(idPropertyRef, ids.type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(idPropertyRef, ids.type.kotlinResult.id)
|
||||
tw.writeHasLocation(idPropertyRef, locId)
|
||||
tw.writeCallableEnclosingExpr(idPropertyRef, callable)
|
||||
tw.writeStatementEnclosingExpr(idPropertyRef, exprParent.enclosingStmt)
|
||||
extractExprContext(idPropertyRef, locId, callable, exprParent.enclosingStmt)
|
||||
tw.writeCallableBinding(idPropertyRef, ids.constructor)
|
||||
|
||||
extractTypeAccessRecursive(kPropertyType, locId, idPropertyRef, -3, callable, exprParent.enclosingStmt)
|
||||
@@ -4719,9 +4651,7 @@ open class KotlinFileExtractor(
|
||||
val idMemberRef = tw.getFreshIdLabel<DbMemberref>()
|
||||
tw.writeExprs_memberref(idMemberRef, ids.type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeExprsKotlinType(idMemberRef, ids.type.kotlinResult.id)
|
||||
tw.writeHasLocation(idMemberRef, locId)
|
||||
tw.writeCallableEnclosingExpr(idMemberRef, callable)
|
||||
tw.writeStatementEnclosingExpr(idMemberRef, exprParent.enclosingStmt)
|
||||
extractExprContext(idMemberRef, locId, callable, exprParent.enclosingStmt)
|
||||
tw.writeCallableBinding(idMemberRef, ids.constructor)
|
||||
|
||||
val targetCallableId = useFunction<DbCallable>(target.owner.realOverrideTarget, classTypeArguments)
|
||||
@@ -4885,25 +4815,19 @@ open class KotlinFileExtractor(
|
||||
tw.writeStmts_returnstmt(retId, funLabels.blockId, 0, funLabels.methodId)
|
||||
tw.writeHasLocation(retId, locId)
|
||||
|
||||
fun extractCommonExpr(id: Label<out DbExpr>) {
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, funLabels.methodId)
|
||||
tw.writeStatementEnclosingExpr(id, retId)
|
||||
}
|
||||
|
||||
// Call to original `invoke`:
|
||||
val callId = tw.getFreshIdLabel<DbMethodaccess>()
|
||||
val callType = useType(lambda.returnType)
|
||||
tw.writeExprs_methodaccess(callId, callType.javaResult.id, retId, 0)
|
||||
tw.writeExprsKotlinType(callId, callType.kotlinResult.id)
|
||||
extractCommonExpr(callId)
|
||||
extractExprContext(callId, locId, funLabels.methodId, retId)
|
||||
val calledMethodId = useFunction<DbMethod>(lambda)
|
||||
tw.writeCallableBinding(callId, calledMethodId)
|
||||
|
||||
// this access
|
||||
extractThisAccess(ids.type, funLabels.methodId, callId, -1, retId, locId)
|
||||
|
||||
addArgumentsToInvocationInInvokeNBody(parameters.map { it.type }, funLabels, retId, callId, locId, ::extractCommonExpr)
|
||||
addArgumentsToInvocationInInvokeNBody(parameters.map { it.type }, funLabels, retId, callId, locId)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -4921,12 +4845,10 @@ open class KotlinFileExtractor(
|
||||
enclosingStmtId: Label<out DbStmt>, // label for the enclosing statement (return)
|
||||
exprParentId: Label<out DbExprparent>, // label for the expression parent (call)
|
||||
locId: Label<DbLocation>, // label for the location of all generated items
|
||||
extractCommonExpr: (Label<out DbExpr>) -> Unit, // lambda used for extracting location, enclosing stmt and expr for all new expressions
|
||||
firstArgumentOffset: Int = 0, // 0 or 1, the index used for the first argument. 1 in case an extension parameter is already accessed at index 0
|
||||
useFirstArgAsDispatch: Boolean = false, // true if the first argument should be used as the dispatch receiver
|
||||
dispatchReceiverIdx: Int = -1 // index of the dispatch receiver. -1 in case of functions, -2 in case of constructors
|
||||
) {
|
||||
val intType = useType(pluginContext.irBuiltIns.intType)
|
||||
val argsParamType = pluginContext.irBuiltIns.arrayClass.typeWith(pluginContext.irBuiltIns.anyNType)
|
||||
val argsType = useType(argsParamType)
|
||||
val anyNType = useType(pluginContext.irBuiltIns.anyNType)
|
||||
@@ -4948,7 +4870,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(pType)
|
||||
tw.writeExprs_castexpr(castId, type.javaResult.id, exprParentId, childIdx)
|
||||
tw.writeExprsKotlinType(castId, type.kotlinResult.id)
|
||||
extractCommonExpr(castId)
|
||||
extractExprContext(castId, locId, funLabels.methodId, enclosingStmtId)
|
||||
|
||||
// type access `Ti`
|
||||
extractTypeAccessRecursive(pType, locId, castId, 0, funLabels.methodId, enclosingStmtId)
|
||||
@@ -4957,21 +4879,17 @@ open class KotlinFileExtractor(
|
||||
val arrayAccessId = tw.getFreshIdLabel<DbArrayaccess>()
|
||||
tw.writeExprs_arrayaccess(arrayAccessId, anyNType.javaResult.id, castId, 1)
|
||||
tw.writeExprsKotlinType(arrayAccessId, anyNType.kotlinResult.id)
|
||||
extractCommonExpr(arrayAccessId)
|
||||
extractExprContext(arrayAccessId, locId, funLabels.methodId, enclosingStmtId)
|
||||
|
||||
// parameter access: `a0`
|
||||
val argsAccessId = tw.getFreshIdLabel<DbVaraccess>()
|
||||
tw.writeExprs_varaccess(argsAccessId, argsType.javaResult.id, arrayAccessId, 0)
|
||||
tw.writeExprsKotlinType(argsAccessId, argsType.kotlinResult.id)
|
||||
extractCommonExpr(argsAccessId)
|
||||
extractExprContext(argsAccessId, locId, funLabels.methodId, enclosingStmtId)
|
||||
tw.writeVariableBinding(argsAccessId, funLabels.parameters.first().first)
|
||||
|
||||
// index access: `i`
|
||||
val indexId = tw.getFreshIdLabel<DbIntegerliteral>()
|
||||
tw.writeExprs_integerliteral(indexId, intType.javaResult.id, arrayAccessId, 1)
|
||||
tw.writeExprsKotlinType(indexId, intType.kotlinResult.id)
|
||||
extractCommonExpr(indexId)
|
||||
tw.writeNamestrings(pIdx.toString(), pIdx.toString(), indexId)
|
||||
extractConstantInteger(pIdx, locId, arrayAccessId, 1, funLabels.methodId, enclosingStmtId)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5143,25 +5061,19 @@ open class KotlinFileExtractor(
|
||||
enclosingStmt: Label<out DbStmt>
|
||||
) : Label<DbArrayinit> {
|
||||
|
||||
fun extractCommonExpr(id: Label<out DbExpr>) {
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, enclosingCallable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
}
|
||||
|
||||
val arrayCreationId = tw.getFreshIdLabel<DbArraycreationexpr>()
|
||||
val arrayType = pluginContext.irBuiltIns.arrayClass.typeWith(pluginContext.irBuiltIns.anyNType)
|
||||
val at = useType(arrayType)
|
||||
tw.writeExprs_arraycreationexpr(arrayCreationId, at.javaResult.id, parent, 0)
|
||||
tw.writeExprsKotlinType(arrayCreationId, at.kotlinResult.id)
|
||||
extractCommonExpr(arrayCreationId)
|
||||
extractExprContext(arrayCreationId, locId, enclosingCallable, enclosingStmt)
|
||||
|
||||
extractTypeAccessRecursive(pluginContext.irBuiltIns.anyNType, locId, arrayCreationId, -1, enclosingCallable, enclosingStmt)
|
||||
|
||||
val initId = tw.getFreshIdLabel<DbArrayinit>()
|
||||
tw.writeExprs_arrayinit(initId, at.javaResult.id, arrayCreationId, -2)
|
||||
tw.writeExprsKotlinType(initId, at.kotlinResult.id)
|
||||
extractCommonExpr(initId)
|
||||
extractExprContext(initId, locId, enclosingCallable, enclosingStmt)
|
||||
|
||||
extractConstantInteger(arraySize, locId, arrayCreationId, 0, enclosingCallable, enclosingStmt)
|
||||
|
||||
@@ -5177,9 +5089,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(e.type)
|
||||
tw.writeExprs_castexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
extractTypeAccessRecursive(e.typeOperand, locId, id, 0, callable, enclosingStmt)
|
||||
extractExpressionExpr(e.argument, callable, id, 1, enclosingStmt)
|
||||
}
|
||||
@@ -5189,9 +5099,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(e.type)
|
||||
tw.writeExprs_implicitcastexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
extractTypeAccessRecursive(e.typeOperand, locId, id, 0, callable, enclosingStmt)
|
||||
extractExpressionExpr(e.argument, callable, id, 1, enclosingStmt)
|
||||
}
|
||||
@@ -5201,9 +5109,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(e.type)
|
||||
tw.writeExprs_implicitnotnullexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
extractTypeAccessRecursive(e.typeOperand, locId, id, 0, callable, enclosingStmt)
|
||||
extractExpressionExpr(e.argument, callable, id, 1, enclosingStmt)
|
||||
}
|
||||
@@ -5213,9 +5119,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(e.type)
|
||||
tw.writeExprs_implicitcoerciontounitexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
extractTypeAccessRecursive(e.typeOperand, locId, id, 0, callable, enclosingStmt)
|
||||
extractExpressionExpr(e.argument, callable, id, 1, enclosingStmt)
|
||||
}
|
||||
@@ -5225,9 +5129,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(e.type)
|
||||
tw.writeExprs_safecastexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
extractTypeAccessRecursive(e.typeOperand, locId, id, 0, callable, enclosingStmt)
|
||||
extractExpressionExpr(e.argument, callable, id, 1, enclosingStmt)
|
||||
}
|
||||
@@ -5237,9 +5139,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(e.type)
|
||||
tw.writeExprs_instanceofexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
extractExpressionExpr(e.argument, callable, id, 0, enclosingStmt)
|
||||
extractTypeAccessRecursive(e.typeOperand, locId, id, 1, callable, enclosingStmt)
|
||||
}
|
||||
@@ -5249,9 +5149,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(e.type)
|
||||
tw.writeExprs_notinstanceofexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
extractExpressionExpr(e.argument, callable, id, 0, enclosingStmt)
|
||||
extractTypeAccessRecursive(e.typeOperand, locId, id, 1, callable, enclosingStmt)
|
||||
}
|
||||
@@ -5376,18 +5274,12 @@ open class KotlinFileExtractor(
|
||||
//<fn>.invoke(vp0, cp1, vp2, vp3, ...) or
|
||||
//<fn>.invoke(new Object[x]{vp0, vp1, vp2, ...})
|
||||
|
||||
fun extractCommonExpr(id: Label<out DbExpr>) {
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, ids.function)
|
||||
tw.writeStatementEnclosingExpr(id, returnId)
|
||||
}
|
||||
|
||||
// Call to original `invoke`:
|
||||
val callId = tw.getFreshIdLabel<DbMethodaccess>()
|
||||
val callType = useType(trySub(samMember.returnType, TypeContext.RETURN))
|
||||
tw.writeExprs_methodaccess(callId, callType.javaResult.id, returnId, 0)
|
||||
tw.writeExprsKotlinType(callId, callType.kotlinResult.id)
|
||||
extractCommonExpr(callId)
|
||||
extractExprContext(callId, locId, ids.function, returnId)
|
||||
val calledMethodId = useFunction<DbMethod>(invokeMethod, functionType.arguments)
|
||||
tw.writeCallableBinding(callId, calledMethodId)
|
||||
|
||||
@@ -5396,7 +5288,7 @@ open class KotlinFileExtractor(
|
||||
val lhsType = useType(functionType)
|
||||
tw.writeExprs_varaccess(lhsId, lhsType.javaResult.id, callId, -1)
|
||||
tw.writeExprsKotlinType(lhsId, lhsType.kotlinResult.id)
|
||||
extractCommonExpr(lhsId)
|
||||
extractExprContext(lhsId, locId, ids.function, returnId)
|
||||
tw.writeVariableBinding(lhsId, fieldId)
|
||||
|
||||
val parameters = mutableListOf<IrValueParameter>()
|
||||
@@ -5411,7 +5303,7 @@ open class KotlinFileExtractor(
|
||||
val paramType = useType(trySub(p.type, TypeContext.OTHER))
|
||||
tw.writeExprs_varaccess(argsAccessId, paramType.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(argsAccessId, paramType.kotlinResult.id)
|
||||
extractCommonExpr(argsAccessId)
|
||||
extractExprContext(argsAccessId, locId, ids.function, returnId)
|
||||
tw.writeVariableBinding(argsAccessId, useValueParameter(p, ids.function))
|
||||
}
|
||||
|
||||
@@ -5432,9 +5324,7 @@ open class KotlinFileExtractor(
|
||||
val type = useType(e.typeOperand)
|
||||
tw.writeExprs_castexpr(id, type.javaResult.id, parent, idx)
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, enclosingStmt)
|
||||
extractExprContext(id, locId, callable, enclosingStmt)
|
||||
extractTypeAccessRecursive(e.typeOperand, locId, id, 0, callable, enclosingStmt)
|
||||
|
||||
val idNewexpr = extractNewExpr(ids.constructor, ids.type, locId, id, 1, callable, enclosingStmt)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.github.codeql
|
||||
|
||||
import com.github.codeql.KotlinUsesExtractor.LocallyVisibleFunctionLabels
|
||||
import com.github.codeql.utils.versions.FileEntry
|
||||
import java.io.BufferedWriter
|
||||
import java.io.File
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
@@ -15,6 +14,7 @@ import org.jetbrains.kotlin.ir.util.SYNTHETIC_OFFSET
|
||||
|
||||
import com.semmle.extractor.java.PopulateFile
|
||||
import com.semmle.util.unicode.UTF8Util
|
||||
import org.jetbrains.kotlin.ir.expressions.IrCall
|
||||
|
||||
/**
|
||||
* Each `.trap` file has a `TrapLabelManager` while we are writing it.
|
||||
@@ -269,11 +269,42 @@ open class FileTrapWriter (
|
||||
*/
|
||||
val fileId = mkFileId(filePath, populateFileTables)
|
||||
|
||||
private fun offsetMinOf(default: Int, vararg options: Int?): Int {
|
||||
if (default == UNDEFINED_OFFSET || default == SYNTHETIC_OFFSET) {
|
||||
return default
|
||||
}
|
||||
|
||||
var currentMin = default
|
||||
for (option in options) {
|
||||
if (option != null && option != UNDEFINED_OFFSET && option != SYNTHETIC_OFFSET && option < currentMin) {
|
||||
currentMin = option
|
||||
}
|
||||
}
|
||||
|
||||
return currentMin
|
||||
}
|
||||
|
||||
private fun getStartOffset(e: IrElement): Int {
|
||||
return when (e) {
|
||||
is IrCall -> {
|
||||
// Calls have incorrect startOffset, so we adjust them:
|
||||
val dr = e.dispatchReceiver?.let { getStartOffset(it) }
|
||||
val er = e.extensionReceiver?.let { getStartOffset(it) }
|
||||
offsetMinOf(e.startOffset, dr, er)
|
||||
}
|
||||
else -> e.startOffset
|
||||
}
|
||||
}
|
||||
|
||||
private fun getEndOffset(e: IrElement): Int {
|
||||
return e.endOffset
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a label for the location of `e`.
|
||||
*/
|
||||
fun getLocation(e: IrElement): Label<DbLocation> {
|
||||
return getLocation(e.startOffset, e.endOffset)
|
||||
return getLocation(getStartOffset(e), getEndOffset(e))
|
||||
}
|
||||
/**
|
||||
* Gets a label for the location corresponding to `startOffset` and
|
||||
|
||||
@@ -3,4 +3,4 @@ groups:
|
||||
- java
|
||||
- examples
|
||||
dependencies:
|
||||
codeql/java-all: "*"
|
||||
codeql/java-all: ${workspace}
|
||||
|
||||
@@ -12,4 +12,4 @@ private string getArgument(Compilation c, int i) {
|
||||
}
|
||||
|
||||
from Compilation c, int i
|
||||
select i, getArgument(c, i)
|
||||
select i, getArgument(c, i).replaceAll("\\", "/")
|
||||
@@ -2,4 +2,4 @@ from create_database_utils import *
|
||||
|
||||
run_codeql_database_create(
|
||||
["gradle build --no-daemon --no-build-cache"], lang="java")
|
||||
runSuccessfully(["gradle", "clean"])
|
||||
runSuccessfully([get_cmd("gradle"), "clean"])
|
||||
@@ -1,5 +1,5 @@
|
||||
from create_database_utils import *
|
||||
import subprocess
|
||||
|
||||
subprocess.check_call(["kotlinc", "lib.kt", "-d", "lib"])
|
||||
subprocess.check_call([get_cmd("kotlinc"), "lib.kt", "-d", "lib"])
|
||||
run_codeql_database_create(["kotlinc user.kt -cp lib"], lang="java")
|
||||
@@ -4,8 +4,8 @@ exprs
|
||||
| Test.java:5:58:5:58 | p | Integer |
|
||||
| user.kt:2:3:2:16 | x | int |
|
||||
| user.kt:2:11:2:11 | t | Test |
|
||||
| user.kt:2:11:2:16 | f(...) | Integer |
|
||||
| user.kt:2:13:2:16 | <implicit not null> | int |
|
||||
| user.kt:2:13:2:16 | f(...) | Integer |
|
||||
| user.kt:2:13:2:16 | int | int |
|
||||
| user.kt:2:15:2:15 | 5 | int |
|
||||
| user.kt:3:10:3:10 | x | int |
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
| user.kt:3:22:3:22 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |
|
||||
| user.kt:3:28:3:28 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |
|
||||
| user.kt:3:15:3:22 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |
|
||||
| user.kt:3:26:3:28 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |
|
||||
|
||||
@@ -99,41 +99,41 @@ callArgs
|
||||
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:41:15:67 | new MiddleManyParams<Float,Double>(...) | -2 |
|
||||
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:69:15:100 | InnerManyParams<Long,Short> | -3 |
|
||||
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:85:15:86 | 1 | 0 |
|
||||
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:91:15:99 | shortValue(...) | 1 |
|
||||
| KotlinUser.kt:15:91:15:99 | shortValue(...) | KotlinUser.kt:15:89:15:89 | 1 | -1 |
|
||||
| KotlinUser.kt:17:21:17:44 | returnsecond(...) | KotlinUser.kt:17:19:17:19 | a | -1 |
|
||||
| KotlinUser.kt:17:21:17:44 | returnsecond(...) | KotlinUser.kt:17:34:17:34 | 0 | 0 |
|
||||
| KotlinUser.kt:17:21:17:44 | returnsecond(...) | KotlinUser.kt:17:38:17:42 | hello | 1 |
|
||||
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:20:18:20 | a | -1 |
|
||||
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:22:18:50 | Character | -2 |
|
||||
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:35:18:35 | 0 | 0 |
|
||||
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:39:18:43 | hello | 1 |
|
||||
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:47:18:49 | a | 2 |
|
||||
| KotlinUser.kt:19:21:19:31 | identity(...) | KotlinUser.kt:19:19:19:19 | b | -1 |
|
||||
| KotlinUser.kt:19:21:19:31 | identity(...) | KotlinUser.kt:19:30:19:30 | 5 | 0 |
|
||||
| KotlinUser.kt:20:23:20:39 | identity(...) | KotlinUser.kt:20:20:20:21 | b2 | -1 |
|
||||
| KotlinUser.kt:20:23:20:39 | identity(...) | KotlinUser.kt:20:33:20:37 | hello | 0 |
|
||||
| KotlinUser.kt:21:21:21:37 | identity(...) | KotlinUser.kt:21:19:21:19 | c | -1 |
|
||||
| KotlinUser.kt:21:21:21:37 | identity(...) | KotlinUser.kt:21:31:21:35 | world | 0 |
|
||||
| KotlinUser.kt:22:21:22:39 | identity(...) | KotlinUser.kt:22:19:22:19 | d | -1 |
|
||||
| KotlinUser.kt:22:21:22:39 | identity(...) | KotlinUser.kt:22:31:22:37 | goodbye | 0 |
|
||||
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:19:23:19 | e | -1 |
|
||||
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:33:23:33 | 1 | 0 |
|
||||
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:37:23:41 | hello | 1 |
|
||||
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:45:23:48 | 1.0 | 2 |
|
||||
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:51:23:53 | 1.0 | 3 |
|
||||
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:56:23:57 | 1 | 4 |
|
||||
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:62:23:70 | shortValue(...) | 5 |
|
||||
| KotlinUser.kt:23:62:23:70 | shortValue(...) | KotlinUser.kt:23:60:23:60 | 1 | -1 |
|
||||
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:89:15:99 | shortValue(...) | 1 |
|
||||
| KotlinUser.kt:15:89:15:99 | shortValue(...) | KotlinUser.kt:15:89:15:89 | 1 | -1 |
|
||||
| KotlinUser.kt:17:19:17:44 | returnsecond(...) | KotlinUser.kt:17:19:17:19 | a | -1 |
|
||||
| KotlinUser.kt:17:19:17:44 | returnsecond(...) | KotlinUser.kt:17:34:17:34 | 0 | 0 |
|
||||
| KotlinUser.kt:17:19:17:44 | returnsecond(...) | KotlinUser.kt:17:38:17:42 | hello | 1 |
|
||||
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:20:18:20 | a | -1 |
|
||||
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:20:18:50 | Character | -2 |
|
||||
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:35:18:35 | 0 | 0 |
|
||||
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:39:18:43 | hello | 1 |
|
||||
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:47:18:49 | a | 2 |
|
||||
| KotlinUser.kt:19:19:19:31 | identity(...) | KotlinUser.kt:19:19:19:19 | b | -1 |
|
||||
| KotlinUser.kt:19:19:19:31 | identity(...) | KotlinUser.kt:19:30:19:30 | 5 | 0 |
|
||||
| KotlinUser.kt:20:20:20:39 | identity(...) | KotlinUser.kt:20:20:20:21 | b2 | -1 |
|
||||
| KotlinUser.kt:20:20:20:39 | identity(...) | KotlinUser.kt:20:33:20:37 | hello | 0 |
|
||||
| KotlinUser.kt:21:19:21:37 | identity(...) | KotlinUser.kt:21:19:21:19 | c | -1 |
|
||||
| KotlinUser.kt:21:19:21:37 | identity(...) | KotlinUser.kt:21:31:21:35 | world | 0 |
|
||||
| KotlinUser.kt:22:19:22:39 | identity(...) | KotlinUser.kt:22:19:22:19 | d | -1 |
|
||||
| KotlinUser.kt:22:19:22:39 | identity(...) | KotlinUser.kt:22:31:22:37 | goodbye | 0 |
|
||||
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:19:23:19 | e | -1 |
|
||||
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:33:23:33 | 1 | 0 |
|
||||
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:37:23:41 | hello | 1 |
|
||||
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:45:23:48 | 1.0 | 2 |
|
||||
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:51:23:53 | 1.0 | 3 |
|
||||
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:56:23:57 | 1 | 4 |
|
||||
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:60:23:70 | shortValue(...) | 5 |
|
||||
| KotlinUser.kt:23:60:23:70 | shortValue(...) | KotlinUser.kt:23:60:23:60 | 1 | -1 |
|
||||
| KotlinUser.kt:25:27:25:48 | new OuterGeneric<String>(...) | KotlinUser.kt:25:27:25:48 | OuterGeneric<String> | -3 |
|
||||
| KotlinUser.kt:25:50:25:69 | getInnerNotGeneric(...) | KotlinUser.kt:25:27:25:48 | new OuterGeneric<String>(...) | -1 |
|
||||
| KotlinUser.kt:25:27:25:69 | getInnerNotGeneric(...) | KotlinUser.kt:25:27:25:48 | new OuterGeneric<String>(...) | -1 |
|
||||
| KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | KotlinUser.kt:26:28:26:44 | OuterNotGeneric | -3 |
|
||||
| KotlinUser.kt:26:46:26:62 | getInnerGeneric(...) | KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | -1 |
|
||||
| KotlinUser.kt:26:28:26:62 | getInnerGeneric(...) | KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | -1 |
|
||||
| KotlinUser.kt:28:15:28:43 | new TypeParamVisibility<String>(...) | KotlinUser.kt:28:15:28:43 | TypeParamVisibility<String> | -3 |
|
||||
| KotlinUser.kt:29:35:29:58 | getVisibleBecauseInner(...) | KotlinUser.kt:29:31:29:33 | tpv | -1 |
|
||||
| KotlinUser.kt:30:43:30:74 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:39:30:41 | tpv | -1 |
|
||||
| KotlinUser.kt:31:39:31:66 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:35:31:37 | tpv | -1 |
|
||||
| KotlinUser.kt:32:47:32:82 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:43:32:45 | tpv | -1 |
|
||||
| KotlinUser.kt:29:31:29:58 | getVisibleBecauseInner(...) | KotlinUser.kt:29:31:29:33 | tpv | -1 |
|
||||
| KotlinUser.kt:30:39:30:74 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:39:30:41 | tpv | -1 |
|
||||
| KotlinUser.kt:31:35:31:66 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:35:31:37 | tpv | -1 |
|
||||
| KotlinUser.kt:32:43:32:82 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:43:32:45 | tpv | -1 |
|
||||
genericTypes
|
||||
| extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | S |
|
||||
| extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | InnerStaticGeneric | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | S |
|
||||
@@ -275,19 +275,19 @@ nestedTypes
|
||||
| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer<> | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility<> |
|
||||
| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer<> | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility<String> |
|
||||
javaKotlinCalleeAgreement
|
||||
| JavaUser.java:16:22:16:47 | returnsecond(...) | KotlinUser.kt:17:21:17:44 | returnsecond(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond |
|
||||
| JavaUser.java:17:23:17:53 | returnsecond(...) | KotlinUser.kt:18:22:18:50 | returnsecond(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond |
|
||||
| JavaUser.java:18:23:18:35 | identity(...) | KotlinUser.kt:19:21:19:31 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | identity |
|
||||
| JavaUser.java:19:23:19:42 | identity(...) | KotlinUser.kt:20:23:20:39 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | identity |
|
||||
| JavaUser.java:20:22:20:40 | identity(...) | KotlinUser.kt:21:21:21:37 | identity(...) | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | identity |
|
||||
| JavaUser.java:21:22:21:42 | identity(...) | KotlinUser.kt:22:21:22:39 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | identity |
|
||||
| JavaUser.java:22:21:22:70 | returnSixth(...) | KotlinUser.kt:23:21:23:71 | returnSixth(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | returnSixth |
|
||||
| JavaUser.java:24:60:24:108 | getInnerNotGeneric(...) | KotlinUser.kt:25:50:25:69 | getInnerNotGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | getInnerNotGeneric |
|
||||
| JavaUser.java:25:61:25:101 | getInnerGeneric(...) | KotlinUser.kt:26:46:26:62 | getInnerGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | getInnerGeneric |
|
||||
| JavaUser.java:28:83:28:110 | getVisibleBecauseInner(...) | KotlinUser.kt:29:35:29:58 | getVisibleBecauseInner(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInner |
|
||||
| JavaUser.java:29:136:29:171 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:43:30:74 | getVisibleBecauseInnerIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInnerIndirect |
|
||||
| JavaUser.java:30:83:30:114 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:39:31:66 | getNotVisibleBecauseStatic(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStatic |
|
||||
| JavaUser.java:31:140:31:179 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:47:32:82 | getNotVisibleBecauseStaticIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStaticIndirect |
|
||||
| JavaUser.java:16:22:16:47 | returnsecond(...) | KotlinUser.kt:17:19:17:44 | returnsecond(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond |
|
||||
| JavaUser.java:17:23:17:53 | returnsecond(...) | KotlinUser.kt:18:20:18:50 | returnsecond(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond |
|
||||
| JavaUser.java:18:23:18:35 | identity(...) | KotlinUser.kt:19:19:19:31 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | identity |
|
||||
| JavaUser.java:19:23:19:42 | identity(...) | KotlinUser.kt:20:20:20:39 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | identity |
|
||||
| JavaUser.java:20:22:20:40 | identity(...) | KotlinUser.kt:21:19:21:37 | identity(...) | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | identity |
|
||||
| JavaUser.java:21:22:21:42 | identity(...) | KotlinUser.kt:22:19:22:39 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | identity |
|
||||
| JavaUser.java:22:21:22:70 | returnSixth(...) | KotlinUser.kt:23:19:23:71 | returnSixth(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | returnSixth |
|
||||
| JavaUser.java:24:60:24:108 | getInnerNotGeneric(...) | KotlinUser.kt:25:27:25:69 | getInnerNotGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | getInnerNotGeneric |
|
||||
| JavaUser.java:25:61:25:101 | getInnerGeneric(...) | KotlinUser.kt:26:28:26:62 | getInnerGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | getInnerGeneric |
|
||||
| JavaUser.java:28:83:28:110 | getVisibleBecauseInner(...) | KotlinUser.kt:29:31:29:58 | getVisibleBecauseInner(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInner |
|
||||
| JavaUser.java:29:136:29:171 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:39:30:74 | getVisibleBecauseInnerIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInnerIndirect |
|
||||
| JavaUser.java:30:83:30:114 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:35:31:66 | getNotVisibleBecauseStatic(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStatic |
|
||||
| JavaUser.java:31:140:31:179 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:43:32:82 | getNotVisibleBecauseStaticIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStaticIndirect |
|
||||
javaKotlinConstructorAgreement
|
||||
| JavaUser.java:7:52:7:110 | new InnerGeneric<String>(...) | KotlinUser.kt:9:33:9:63 | new InnerGeneric<String>(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric<String> |
|
||||
| JavaUser.java:7:53:7:79 | new OuterGeneric<Integer>(...) | KotlinUser.kt:9:13:9:31 | new OuterGeneric<Integer>(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric<Integer> |
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
| User.java:5:5:5:34 | getKotlinVal(...) | getKotlinVal | String |
|
||||
| test.kt:8:43:8:78 | with(...) | with | Function1<? super T,? extends R> |
|
||||
| test.kt:8:43:8:78 | with(...) | with | T |
|
||||
| test.kt:8:68:8:76 | getKotlinVal(...) | getKotlinVal | String |
|
||||
| test.kt:8:55:8:76 | getKotlinVal(...) | getKotlinVal | String |
|
||||
|
||||
@@ -7,5 +7,5 @@ suites: codeql-suites
|
||||
extractor: java
|
||||
defaultSuiteFile: codeql-suites/java-code-scanning.qls
|
||||
dependencies:
|
||||
codeql/java-all: "*"
|
||||
codeql/suite-helpers: "*"
|
||||
codeql/java-all: ${workspace}
|
||||
codeql/suite-helpers: ${workspace}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
| arrayIterators.kt:10:16:10:25 | iterator(...) | iterator(java.lang.Object[]) | kotlin.jvm.internal.ArrayIteratorKt |
|
||||
| arrayIterators.kt:11:16:11:25 | iterator(...) | iterator(int[]) | kotlin.jvm.internal.ArrayIteratorsKt |
|
||||
| arrayIterators.kt:12:16:12:25 | iterator(...) | iterator(boolean[]) | kotlin.jvm.internal.ArrayIteratorsKt |
|
||||
| arrayIterators.kt:10:14:10:25 | iterator(...) | iterator(java.lang.Object[]) | kotlin.jvm.internal.ArrayIteratorKt |
|
||||
| arrayIterators.kt:11:14:11:25 | iterator(...) | iterator(int[]) | kotlin.jvm.internal.ArrayIteratorsKt |
|
||||
| arrayIterators.kt:12:14:12:25 | iterator(...) | iterator(boolean[]) | kotlin.jvm.internal.ArrayIteratorsKt |
|
||||
|
||||
@@ -1 +1 @@
|
||||
| test.kt:1:19:1:26 | toChar(...) |
|
||||
| test.kt:1:17:1:26 | toChar(...) |
|
||||
|
||||
@@ -29,21 +29,21 @@
|
||||
| generic_anonymous.kt:7:3:7:22 | T | T |
|
||||
| generic_anonymous.kt:7:15:7:15 | getX$private(...) | new Object(...) { ... } |
|
||||
| generic_anonymous.kt:7:15:7:15 | this | Generic |
|
||||
| generic_anonymous.kt:7:17:7:22 | getMember(...) | T |
|
||||
| generic_anonymous.kt:7:15:7:22 | getMember(...) | T |
|
||||
| generic_anonymous.kt:11:1:11:56 | String | String |
|
||||
| generic_anonymous.kt:11:20:11:28 | String | String |
|
||||
| generic_anonymous.kt:11:33:11:50 | Generic<String> | Generic<String> |
|
||||
| generic_anonymous.kt:11:33:11:50 | String | String |
|
||||
| generic_anonymous.kt:11:33:11:50 | new Generic<String>(...) | Generic<String> |
|
||||
| generic_anonymous.kt:11:33:11:56 | get(...) | String |
|
||||
| generic_anonymous.kt:11:49:11:49 | s | String |
|
||||
| generic_anonymous.kt:11:52:11:56 | get(...) | String |
|
||||
| generic_anonymous.kt:13:1:13:47 | int | int |
|
||||
| generic_anonymous.kt:13:17:13:22 | int | int |
|
||||
| generic_anonymous.kt:13:27:13:41 | Generic<Integer> | Generic<Integer> |
|
||||
| generic_anonymous.kt:13:27:13:41 | Integer | Integer |
|
||||
| generic_anonymous.kt:13:27:13:41 | new Generic<Integer>(...) | Generic<Integer> |
|
||||
| generic_anonymous.kt:13:27:13:47 | get(...) | int |
|
||||
| generic_anonymous.kt:13:40:13:40 | i | int |
|
||||
| generic_anonymous.kt:13:43:13:47 | get(...) | int |
|
||||
| generic_anonymous.kt:17:9:17:29 | T0 | T0 |
|
||||
| generic_anonymous.kt:17:26:17:29 | null | Void |
|
||||
| generic_anonymous.kt:21:9:21:29 | T1 | T1 |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:23:22:23:28 | self1(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:26:22:26:28 | self2(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:29:18:29:29 | fn1(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:32:18:32:29 | fn2(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:35:18:35:31 | call1(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:38:22:38:28 | call2(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:23:14:23:28 | self1(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:26:14:26:28 | self2(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:29:14:29:29 | fn1(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:32:14:32:29 | fn2(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:35:14:35:31 | call1(...) |
|
||||
| test.kt:20:29:20:31 | new C(...) | test.kt:38:14:38:28 | call2(...) |
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
| functionReference.kt:8:59:8:65 | taint(...) | functionReference.kt:8:33:8:66 | process(...) |
|
||||
| functionReference.kt:10:78:10:84 | taint(...) | functionReference.kt:10:33:10:85 | process(...) |
|
||||
| functionReference.kt:12:55:12:61 | taint(...) | functionReference.kt:12:33:12:62 | process(...) |
|
||||
| functionReference.kt:19:24:19:30 | taint(...) | functionReference.kt:15:33:15:51 | process(...) |
|
||||
| lambda.kt:4:64:4:70 | taint(...) | lambda.kt:4:33:4:77 | process(...) |
|
||||
| lambda.kt:6:60:6:66 | taint(...) | lambda.kt:6:33:6:67 | process(...) |
|
||||
| lambda.kt:7:69:7:75 | taint(...) | lambda.kt:7:33:7:76 | process(...) |
|
||||
| lambda.kt:10:81:10:87 | taint(...) | lambda.kt:10:33:10:88 | processExt(...) |
|
||||
| lambda.kt:11:66:11:72 | taint(...) | lambda.kt:11:33:11:91 | processExt(...) |
|
||||
| lambda.kt:14:145:14:151 | taint(...) | lambda.kt:14:33:14:170 | process(...) |
|
||||
| lambda.kt:15:163:15:169 | taint(...) | lambda.kt:15:33:15:170 | process(...) |
|
||||
| lambda.kt:28:35:28:41 | taint(...) | lambda.kt:28:21:28:60 | invoke(...) |
|
||||
| lambda.kt:30:43:30:49 | taint(...) | lambda.kt:30:21:30:69 | invoke(...) |
|
||||
| lambda.kt:31:61:31:67 | taint(...) | lambda.kt:31:21:31:69 | invoke(...) |
|
||||
| localFunction.kt:3:28:3:34 | taint(...) | localFunction.kt:6:21:6:25 | fn1(...) |
|
||||
| localFunction.kt:7:32:7:38 | taint(...) | localFunction.kt:7:21:7:39 | fn2(...) |
|
||||
| localFunction.kt:9:36:9:42 | taint(...) | localFunction.kt:12:21:12:25 | fn3(...) |
|
||||
| localFunction.kt:13:32:13:38 | taint(...) | localFunction.kt:13:21:13:39 | fn4(...) |
|
||||
| samConversion.kt:11:37:11:43 | taint(...) | samConversion.kt:14:24:14:29 | go(...) |
|
||||
| samConversion.kt:15:34:15:40 | taint(...) | samConversion.kt:15:24:15:41 | go(...) |
|
||||
| samConversion.kt:17:41:17:47 | taint(...) | samConversion.kt:20:24:20:29 | go(...) |
|
||||
| samConversion.kt:21:34:21:40 | taint(...) | samConversion.kt:21:24:21:41 | go(...) |
|
||||
| functionReference.kt:8:52:8:65 | taint(...) | functionReference.kt:8:21:8:66 | process(...) |
|
||||
| functionReference.kt:10:71:10:84 | taint(...) | functionReference.kt:10:21:10:85 | process(...) |
|
||||
| functionReference.kt:12:48:12:61 | taint(...) | functionReference.kt:12:21:12:62 | process(...) |
|
||||
| functionReference.kt:19:17:19:30 | taint(...) | functionReference.kt:15:21:15:51 | process(...) |
|
||||
| lambda.kt:4:57:4:70 | taint(...) | lambda.kt:4:21:4:77 | process(...) |
|
||||
| lambda.kt:6:53:6:66 | taint(...) | lambda.kt:6:21:6:67 | process(...) |
|
||||
| lambda.kt:7:62:7:75 | taint(...) | lambda.kt:7:21:7:76 | process(...) |
|
||||
| lambda.kt:10:74:10:87 | taint(...) | lambda.kt:10:21:10:88 | processExt(...) |
|
||||
| lambda.kt:11:59:11:72 | taint(...) | lambda.kt:11:21:11:91 | processExt(...) |
|
||||
| lambda.kt:14:138:14:151 | taint(...) | lambda.kt:14:21:14:170 | process(...) |
|
||||
| lambda.kt:15:156:15:169 | taint(...) | lambda.kt:15:21:15:170 | process(...) |
|
||||
| lambda.kt:28:28:28:41 | taint(...) | lambda.kt:28:21:28:60 | invoke(...) |
|
||||
| lambda.kt:30:36:30:49 | taint(...) | lambda.kt:30:21:30:69 | invoke(...) |
|
||||
| lambda.kt:31:54:31:67 | taint(...) | lambda.kt:31:21:31:69 | invoke(...) |
|
||||
| localFunction.kt:3:21:3:34 | taint(...) | localFunction.kt:6:21:6:25 | fn1(...) |
|
||||
| localFunction.kt:7:25:7:38 | taint(...) | localFunction.kt:7:21:7:39 | fn2(...) |
|
||||
| localFunction.kt:9:29:9:42 | taint(...) | localFunction.kt:12:21:12:25 | fn3(...) |
|
||||
| localFunction.kt:13:25:13:38 | taint(...) | localFunction.kt:13:21:13:39 | fn4(...) |
|
||||
| samConversion.kt:11:30:11:43 | taint(...) | samConversion.kt:14:21:14:29 | go(...) |
|
||||
| samConversion.kt:15:27:15:40 | taint(...) | samConversion.kt:15:21:15:41 | go(...) |
|
||||
| samConversion.kt:17:34:17:47 | taint(...) | samConversion.kt:20:21:20:29 | go(...) |
|
||||
| samConversion.kt:21:27:21:40 | taint(...) | samConversion.kt:21:21:21:41 | go(...) |
|
||||
|
||||
@@ -1 +1 @@
|
||||
| NotNullExpr.kt:7:14:7:20 | taint(...) | NotNullExpr.kt:8:15:8:33 | getQueryParameter(...) |
|
||||
| NotNullExpr.kt:7:14:7:20 | taint(...) | NotNullExpr.kt:8:12:8:33 | getQueryParameter(...) |
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
| test.kt:28:16:28:21 | getSecond(...) | Unexpected result: hasTaintFlow=a |
|
||||
| test.kt:35:16:35:27 | component1(...) | Unexpected result: hasTaintFlow=d |
|
||||
| test.kt:41:17:41:22 | getSecond(...) | Unexpected result: hasTaintFlow=e |
|
||||
| test.kt:53:17:53:24 | getDuration(...) | Unexpected result: hasTaintFlow=f |
|
||||
| test.kt:58:18:58:29 | component2(...) | Unexpected result: hasTaintFlow=g |
|
||||
| test.kt:28:14:28:21 | getSecond(...) | Unexpected result: hasTaintFlow=a |
|
||||
| test.kt:35:14:35:27 | component1(...) | Unexpected result: hasTaintFlow=d |
|
||||
| test.kt:41:14:41:22 | getSecond(...) | Unexpected result: hasTaintFlow=e |
|
||||
| test.kt:53:14:53:24 | getDuration(...) | Unexpected result: hasTaintFlow=f |
|
||||
| test.kt:58:14:58:29 | component2(...) | Unexpected result: hasTaintFlow=g |
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
| exprs.kt:135:12:135:20 | ... + ... | exprs.kt:135:12:135:14 | 123 | exprs.kt:135:18:135:20 | 456 |
|
||||
| exprs.kt:161:8:161:16 | ... (value not-equals) ... | exprs.kt:161:8:161:8 | r | exprs.kt:161:13:161:16 | null |
|
||||
| exprs.kt:190:31:190:37 | ... + ... | exprs.kt:190:31:190:32 | getA1(...) | exprs.kt:190:36:190:37 | a2 |
|
||||
| exprs.kt:205:23:205:29 | ... + ... | exprs.kt:205:20:205:21 | ...!! | exprs.kt:205:28:205:28 | 5 |
|
||||
| exprs.kt:205:20:205:29 | ... + ... | exprs.kt:205:20:205:21 | ...!! | exprs.kt:205:28:205:28 | 5 |
|
||||
| exprs.kt:206:19:206:25 | ... + ... | exprs.kt:206:20:206:21 | ...!! | exprs.kt:206:25:206:25 | 5 |
|
||||
| exprs.kt:224:12:224:47 | ... (value equals) ... | exprs.kt:224:12:224:27 | notNullPrimitive | exprs.kt:224:32:224:47 | notNullPrimitive |
|
||||
| exprs.kt:225:12:225:48 | ... (value equals) ... | exprs.kt:225:12:225:27 | notNullPrimitive | exprs.kt:225:32:225:48 | nullablePrimitive |
|
||||
|
||||
@@ -31,19 +31,19 @@
|
||||
| delegatedProperties.kt:6:24:9:9 | ...::... | delegatedProperties.kt:6:24:9:9 | <get-prop1> | PropertyRefExpr |
|
||||
| delegatedProperties.kt:6:24:9:9 | <get-prop1>(...) | delegatedProperties.kt:6:24:9:9 | get | MethodAccess |
|
||||
| delegatedProperties.kt:6:24:9:9 | Integer | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
|
||||
| delegatedProperties.kt:6:24:9:9 | Integer | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
|
||||
| delegatedProperties.kt:6:24:9:9 | KProperty0<Integer> | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
|
||||
| delegatedProperties.kt:6:24:9:9 | LazyKt | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
|
||||
| delegatedProperties.kt:6:24:9:9 | Object | delegatedProperties.kt:6:24:9:9 | get | TypeAccess |
|
||||
| delegatedProperties.kt:6:24:9:9 | get(...) | delegatedProperties.kt:6:24:9:9 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:6:24:9:9 | getValue(...) | delegatedProperties.kt:6:24:9:9 | <get-prop1> | MethodAccess |
|
||||
| delegatedProperties.kt:6:24:9:9 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:6:24:9:9 | new (...) | delegatedProperties.kt:6:24:9:9 | get | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:6:24:9:9 | prop1$delegate | delegatedProperties.kt:5:5:12:5 | fn | LocalVariableDeclExpr |
|
||||
| delegatedProperties.kt:6:24:9:9 | prop1$delegate | delegatedProperties.kt:6:24:9:9 | <get-prop1> | VarAccess |
|
||||
| delegatedProperties.kt:6:24:9:9 | this | delegatedProperties.kt:6:24:9:9 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:6:27:9:9 | Integer | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
|
||||
| delegatedProperties.kt:6:27:9:9 | Integer | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
|
||||
| delegatedProperties.kt:6:27:9:9 | LazyKt | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
|
||||
| delegatedProperties.kt:6:27:9:9 | LazyKt | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
|
||||
| delegatedProperties.kt:6:27:9:9 | getValue(...) | delegatedProperties.kt:6:24:9:9 | <get-prop1> | MethodAccess |
|
||||
| delegatedProperties.kt:6:27:9:9 | lazy(...) | delegatedProperties.kt:5:5:12:5 | fn | MethodAccess |
|
||||
| delegatedProperties.kt:6:32:9:9 | ...->... | delegatedProperties.kt:5:5:12:5 | fn | LambdaExpr |
|
||||
| delegatedProperties.kt:6:32:9:9 | Function0<Integer> | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
|
||||
@@ -87,21 +87,21 @@
|
||||
| delegatedProperties.kt:19:31:19:51 | a0 | delegatedProperties.kt:19:31:19:51 | set | VarAccess |
|
||||
| delegatedProperties.kt:19:31:19:51 | get(...) | delegatedProperties.kt:19:31:19:51 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:19:31:19:51 | get(...) | delegatedProperties.kt:19:31:19:51 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:19:31:19:51 | getValue(...) | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | MethodAccess |
|
||||
| delegatedProperties.kt:19:31:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:19:31:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | get | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | get | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | set | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | set | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:19:31:19:51 | setValue(...) | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | MethodAccess |
|
||||
| delegatedProperties.kt:19:31:19:51 | this | delegatedProperties.kt:19:31:19:51 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:19:31:19:51 | this | delegatedProperties.kt:19:31:19:51 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
|
||||
| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | VarAccess |
|
||||
| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | VarAccess |
|
||||
| delegatedProperties.kt:19:34:19:51 | ResourceDelegate | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess |
|
||||
| delegatedProperties.kt:19:34:19:51 | getValue(...) | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | MethodAccess |
|
||||
| delegatedProperties.kt:19:34:19:51 | new ResourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:19:34:19:51 | setValue(...) | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | MethodAccess |
|
||||
| delegatedProperties.kt:19:34:19:51 | value | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | VarAccess |
|
||||
| delegatedProperties.kt:20:9:20:29 | ConsoleKt | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess |
|
||||
| delegatedProperties.kt:20:9:20:29 | println(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodAccess |
|
||||
@@ -115,18 +115,18 @@
|
||||
| delegatedProperties.kt:23:26:23:31 | ...::... | delegatedProperties.kt:23:26:23:31 | <get-name> | PropertyRefExpr |
|
||||
| delegatedProperties.kt:23:26:23:31 | <get-name>(...) | delegatedProperties.kt:23:26:23:31 | get | MethodAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | KProperty0<String> | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | MapAccessorsKt | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | Object | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | Object | delegatedProperties.kt:23:26:23:31 | get | TypeAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | String | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | String | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | get(...) | delegatedProperties.kt:23:26:23:31 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | getValue(...) | delegatedProperties.kt:23:26:23:31 | <get-name> | MethodAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | name$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
|
||||
| delegatedProperties.kt:23:26:23:31 | name$delegate | delegatedProperties.kt:23:26:23:31 | <get-name> | VarAccess |
|
||||
| delegatedProperties.kt:23:26:23:31 | new (...) | delegatedProperties.kt:23:26:23:31 | get | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:23:26:23:31 | this | delegatedProperties.kt:23:26:23:31 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:23:29:23:31 | MapAccessorsKt | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
|
||||
| delegatedProperties.kt:23:29:23:31 | Object | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
|
||||
| delegatedProperties.kt:23:29:23:31 | String | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
|
||||
| delegatedProperties.kt:23:29:23:31 | getValue(...) | delegatedProperties.kt:23:26:23:31 | <get-name> | MethodAccess |
|
||||
| delegatedProperties.kt:23:29:23:31 | map | delegatedProperties.kt:18:5:40:5 | fn | VarAccess |
|
||||
| delegatedProperties.kt:25:9:31:9 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:25:9:31:9 | Object | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -167,13 +167,13 @@
|
||||
| delegatedProperties.kt:33:27:33:47 | KProperty0<Integer> | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | TypeAccess |
|
||||
| delegatedProperties.kt:33:27:33:47 | Object | delegatedProperties.kt:33:27:33:47 | get | TypeAccess |
|
||||
| delegatedProperties.kt:33:27:33:47 | get(...) | delegatedProperties.kt:33:27:33:47 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:33:27:33:47 | getValue(...) | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | MethodAccess |
|
||||
| delegatedProperties.kt:33:27:33:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:33:27:33:47 | new (...) | delegatedProperties.kt:33:27:33:47 | get | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:33:27:33:47 | readOnly$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
|
||||
| delegatedProperties.kt:33:27:33:47 | readOnly$delegate | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | VarAccess |
|
||||
| delegatedProperties.kt:33:27:33:47 | this | delegatedProperties.kt:33:27:33:47 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:33:30:33:47 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess |
|
||||
| delegatedProperties.kt:33:30:33:47 | getValue(...) | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | MethodAccess |
|
||||
| delegatedProperties.kt:33:30:33:47 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | ...::... | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | PropertyRefExpr |
|
||||
@@ -195,6 +195,7 @@
|
||||
| delegatedProperties.kt:34:28:34:48 | a0 | delegatedProperties.kt:34:28:34:48 | set | VarAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | get(...) | delegatedProperties.kt:34:28:34:48 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | get(...) | delegatedProperties.kt:34:28:34:48 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | getValue(...) | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | MethodAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | new (...) | delegatedProperties.kt:34:28:34:48 | get | ClassInstanceExpr |
|
||||
@@ -204,13 +205,12 @@
|
||||
| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
|
||||
| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | VarAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | VarAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | setValue(...) | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | MethodAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | this | delegatedProperties.kt:34:28:34:48 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:34:28:34:48 | this | delegatedProperties.kt:34:28:34:48 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess |
|
||||
| delegatedProperties.kt:34:31:34:48 | getValue(...) | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | MethodAccess |
|
||||
| delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:34:31:34:48 | resourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodAccess |
|
||||
| delegatedProperties.kt:34:31:34:48 | setValue(...) | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | MethodAccess |
|
||||
| delegatedProperties.kt:34:31:34:48 | value | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | VarAccess |
|
||||
| delegatedProperties.kt:36:9:36:29 | ConsoleKt | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess |
|
||||
| delegatedProperties.kt:36:9:36:29 | println(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodAccess |
|
||||
@@ -231,6 +231,7 @@
|
||||
| delegatedProperties.kt:39:31:39:51 | Object | delegatedProperties.kt:39:31:39:51 | get | TypeAccess |
|
||||
| delegatedProperties.kt:39:31:39:51 | get(...) | delegatedProperties.kt:39:31:39:51 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:39:31:39:51 | get(...) | delegatedProperties.kt:39:31:39:51 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:39:31:39:51 | getValue(...) | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | MethodAccess |
|
||||
| delegatedProperties.kt:39:31:39:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:39:31:39:51 | new (...) | delegatedProperties.kt:39:31:39:51 | get | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:39:31:39:51 | new (...) | delegatedProperties.kt:39:31:39:51 | get | ClassInstanceExpr |
|
||||
@@ -240,7 +241,6 @@
|
||||
| delegatedProperties.kt:39:31:39:51 | varResource2$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
|
||||
| delegatedProperties.kt:39:31:39:51 | varResource2$delegate | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | VarAccess |
|
||||
| delegatedProperties.kt:39:34:39:51 | DelegateProvider | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess |
|
||||
| delegatedProperties.kt:39:34:39:51 | getValue(...) | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | MethodAccess |
|
||||
| delegatedProperties.kt:39:34:39:51 | new DelegateProvider(...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:42:27:42:47 | ...::... | delegatedProperties.kt:42:27:42:47 | getVarResource0 | PropertyRefExpr |
|
||||
| delegatedProperties.kt:42:27:42:47 | ...::... | delegatedProperties.kt:42:27:42:47 | setVarResource0 | PropertyRefExpr |
|
||||
@@ -263,10 +263,12 @@
|
||||
| delegatedProperties.kt:42:27:42:47 | a1 | delegatedProperties.kt:42:27:42:47 | set | VarAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | get(...) | delegatedProperties.kt:42:27:42:47 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | get(...) | delegatedProperties.kt:42:27:42:47 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | getValue(...) | delegatedProperties.kt:42:27:42:47 | getVarResource0 | MethodAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | getVarResource0(...) | delegatedProperties.kt:42:27:42:47 | get | MethodAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | getVarResource0(...) | delegatedProperties.kt:42:27:42:47 | get | MethodAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | setValue(...) | delegatedProperties.kt:42:27:42:47 | setVarResource0 | MethodAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | setVarResource0(...) | delegatedProperties.kt:42:27:42:47 | set | MethodAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | setVarResource0(...) | delegatedProperties.kt:42:27:42:47 | set | MethodAccess |
|
||||
| delegatedProperties.kt:42:27:42:47 | this | delegatedProperties.kt:42:27:42:47 | getVarResource0 | ThisAccess |
|
||||
@@ -278,9 +280,7 @@
|
||||
| delegatedProperties.kt:42:27:42:47 | varResource0$delegate | delegatedProperties.kt:17:1:43:1 | Owner | VarAccess |
|
||||
| delegatedProperties.kt:42:30:42:47 | <set-?> | delegatedProperties.kt:42:27:42:47 | setVarResource0 | VarAccess |
|
||||
| delegatedProperties.kt:42:30:42:47 | ResourceDelegate | delegatedProperties.kt:17:1:43:1 | Owner | TypeAccess |
|
||||
| delegatedProperties.kt:42:30:42:47 | getValue(...) | delegatedProperties.kt:42:27:42:47 | getVarResource0 | MethodAccess |
|
||||
| delegatedProperties.kt:42:30:42:47 | new ResourceDelegate(...) | delegatedProperties.kt:17:1:43:1 | Owner | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:42:30:42:47 | setValue(...) | delegatedProperties.kt:42:27:42:47 | setVarResource0 | MethodAccess |
|
||||
| delegatedProperties.kt:46:14:48:5 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:46:27:46:41 | Owner | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:46:44:46:65 | ? ... | file://:0:0:0:0 | <none> | WildcardTypeAccess |
|
||||
@@ -354,6 +354,8 @@
|
||||
| delegatedProperties.kt:66:33:66:50 | ...::... | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | PropertyRefExpr |
|
||||
| delegatedProperties.kt:66:33:66:50 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
|
||||
| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -361,6 +363,8 @@
|
||||
| delegatedProperties.kt:66:33:66:50 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | MyClass | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | MyClass | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | a0 | delegatedProperties.kt:66:33:66:50 | get | VarAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | a0 | delegatedProperties.kt:66:33:66:50 | get | VarAccess |
|
||||
@@ -375,10 +379,12 @@
|
||||
| delegatedProperties.kt:66:33:66:50 | get(...) | delegatedProperties.kt:66:33:66:50 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | get | MethodAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | get | MethodAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | getValue(...) | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | MethodAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | set | MethodAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | set | MethodAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | setValue(...) | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | MethodAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | this | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | ThisAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | this | delegatedProperties.kt:66:33:66:50 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:66:33:66:50 | this | delegatedProperties.kt:66:33:66:50 | invoke | ThisAccess |
|
||||
@@ -392,18 +398,12 @@
|
||||
| delegatedProperties.kt:66:36:66:50 | <dispatchReceiver> | delegatedProperties.kt:66:36:66:50 | | VarAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | <set-?> | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | VarAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | KMutableProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | set | VarAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | get(...) | delegatedProperties.kt:66:36:66:50 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | getMemberInt(...) | delegatedProperties.kt:66:36:66:50 | get | MethodAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | getValue(...) | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | MethodAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | setMemberInt(...) | delegatedProperties.kt:66:36:66:50 | set | MethodAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | setValue(...) | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | MethodAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | | ThisAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | get | ThisAccess |
|
||||
| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | invoke | ThisAccess |
|
||||
@@ -415,14 +415,20 @@
|
||||
| delegatedProperties.kt:67:33:67:53 | ...::... | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | PropertyRefExpr |
|
||||
| delegatedProperties.kt:67:33:67:53 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
|
||||
| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | KMutableProperty1<MyClass,Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | a0 | delegatedProperties.kt:67:33:67:53 | get | VarAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | a0 | delegatedProperties.kt:67:33:67:53 | get | VarAccess |
|
||||
@@ -437,10 +443,12 @@
|
||||
| delegatedProperties.kt:67:33:67:53 | get(...) | delegatedProperties.kt:67:33:67:53 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | get | MethodAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | get | MethodAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | getValue(...) | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | MethodAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | set | MethodAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | set | MethodAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | setValue(...) | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | MethodAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | this | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | ThisAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | this | delegatedProperties.kt:67:33:67:53 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:67:33:67:53 | this | delegatedProperties.kt:67:33:67:53 | invoke | ThisAccess |
|
||||
@@ -450,28 +458,22 @@
|
||||
| delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:65:1:85:1 | MyClass | PropertyRefExpr |
|
||||
| delegatedProperties.kt:67:36:67:53 | <set-?> | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | VarAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | get | VarAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | invoke | VarAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | set | VarAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | a1 | delegatedProperties.kt:67:36:67:53 | set | VarAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | get(...) | delegatedProperties.kt:67:36:67:53 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | getMemberInt(...) | delegatedProperties.kt:67:36:67:53 | get | MethodAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | getValue(...) | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | MethodAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | setMemberInt(...) | delegatedProperties.kt:67:36:67:53 | set | MethodAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | setValue(...) | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | MethodAccess |
|
||||
| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | ...::... | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | PropertyRefExpr |
|
||||
| delegatedProperties.kt:69:36:69:56 | ...::... | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | PropertyRefExpr |
|
||||
| delegatedProperties.kt:69:36:69:56 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
|
||||
| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -479,6 +481,8 @@
|
||||
| delegatedProperties.kt:69:36:69:56 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | MyClass | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | MyClass | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | a0 | delegatedProperties.kt:69:36:69:56 | get | VarAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | a0 | delegatedProperties.kt:69:36:69:56 | get | VarAccess |
|
||||
@@ -493,10 +497,12 @@
|
||||
| delegatedProperties.kt:69:36:69:56 | get(...) | delegatedProperties.kt:69:36:69:56 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | get | MethodAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | get | MethodAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | getValue(...) | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | MethodAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | set | MethodAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | set | MethodAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | setValue(...) | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | MethodAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | this | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | ThisAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | this | delegatedProperties.kt:69:36:69:56 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:69:36:69:56 | this | delegatedProperties.kt:69:36:69:56 | invoke | ThisAccess |
|
||||
@@ -512,18 +518,12 @@
|
||||
| delegatedProperties.kt:69:39:69:56 | DelegatedPropertiesKt | delegatedProperties.kt:69:39:69:56 | get | TypeAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | DelegatedPropertiesKt | delegatedProperties.kt:69:39:69:56 | set | TypeAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | KMutableProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | set | VarAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | get(...) | delegatedProperties.kt:69:39:69:56 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | getExtDelegated(...) | delegatedProperties.kt:69:39:69:56 | get | MethodAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | getValue(...) | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | MethodAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | setExtDelegated(...) | delegatedProperties.kt:69:39:69:56 | set | MethodAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | setValue(...) | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | MethodAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | | ThisAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | get | ThisAccess |
|
||||
| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | invoke | ThisAccess |
|
||||
@@ -535,14 +535,20 @@
|
||||
| delegatedProperties.kt:70:36:70:59 | ...::... | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | PropertyRefExpr |
|
||||
| delegatedProperties.kt:70:36:70:59 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
|
||||
| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | KMutableProperty1<MyClass,Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | a0 | delegatedProperties.kt:70:36:70:59 | get | VarAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | a0 | delegatedProperties.kt:70:36:70:59 | get | VarAccess |
|
||||
@@ -557,10 +563,12 @@
|
||||
| delegatedProperties.kt:70:36:70:59 | get(...) | delegatedProperties.kt:70:36:70:59 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | get | MethodAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | get | MethodAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | getValue(...) | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | MethodAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | set | MethodAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | set | MethodAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | setValue(...) | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | MethodAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | this | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | ThisAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | this | delegatedProperties.kt:70:36:70:59 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:70:36:70:59 | this | delegatedProperties.kt:70:36:70:59 | invoke | ThisAccess |
|
||||
@@ -572,36 +580,31 @@
|
||||
| delegatedProperties.kt:70:39:70:59 | DelegatedPropertiesKt | delegatedProperties.kt:70:39:70:59 | get | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | DelegatedPropertiesKt | delegatedProperties.kt:70:39:70:59 | set | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | get | VarAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | invoke | VarAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | set | VarAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | a1 | delegatedProperties.kt:70:39:70:59 | set | VarAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | get(...) | delegatedProperties.kt:70:39:70:59 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | getExtDelegated(...) | delegatedProperties.kt:70:39:70:59 | get | MethodAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | getValue(...) | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | MethodAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | setExtDelegated(...) | delegatedProperties.kt:70:39:70:59 | set | MethodAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | setValue(...) | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | MethodAccess |
|
||||
| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | ...::... | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | PropertyRefExpr |
|
||||
| delegatedProperties.kt:72:36:72:56 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
|
||||
| delegatedProperties.kt:72:36:72:56 | Integer | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | Integer | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | KProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | KProperty1<MyClass,Integer> | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | MyClass | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | a0 | delegatedProperties.kt:72:36:72:56 | get | VarAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | a0 | delegatedProperties.kt:72:36:72:56 | invoke | VarAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | delegatedToBaseClass1$delegate | delegatedProperties.kt:65:1:85:1 | MyClass | VarAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | get(...) | delegatedProperties.kt:72:36:72:56 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1(...) | delegatedProperties.kt:72:36:72:56 | get | MethodAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | getValue(...) | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | MethodAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | this | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | ThisAccess |
|
||||
| delegatedProperties.kt:72:36:72:56 | this | delegatedProperties.kt:72:36:72:56 | invoke | ThisAccess |
|
||||
@@ -612,13 +615,10 @@
|
||||
| delegatedProperties.kt:72:39:72:56 | ...=... | delegatedProperties.kt:72:39:72:56 | | AssignExpr |
|
||||
| delegatedProperties.kt:72:39:72:56 | <dispatchReceiver> | delegatedProperties.kt:72:39:72:56 | | VarAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | KProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | get(...) | delegatedProperties.kt:72:39:72:56 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | getBaseClassInt(...) | delegatedProperties.kt:72:39:72:56 | get | MethodAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | getValue(...) | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | MethodAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | | ThisAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | get | ThisAccess |
|
||||
| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | invoke | ThisAccess |
|
||||
@@ -626,46 +626,49 @@
|
||||
| delegatedProperties.kt:72:39:72:56 | this.<dispatchReceiver> | delegatedProperties.kt:72:39:72:56 | get | VarAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | ...::... | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | PropertyRefExpr |
|
||||
| delegatedProperties.kt:73:36:73:56 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
|
||||
| delegatedProperties.kt:73:36:73:56 | Base | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | Base | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | Integer | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | Integer | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | KProperty1<Base,Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | KProperty1<MyClass,Integer> | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | MyClass | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | a0 | delegatedProperties.kt:73:36:73:56 | get | VarAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | a0 | delegatedProperties.kt:73:36:73:56 | invoke | VarAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | delegatedToBaseClass2$delegate | delegatedProperties.kt:65:1:85:1 | MyClass | VarAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | get(...) | delegatedProperties.kt:73:36:73:56 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2(...) | delegatedProperties.kt:73:36:73:56 | get | MethodAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | getValue(...) | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | MethodAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | this | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | ThisAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | this | delegatedProperties.kt:73:36:73:56 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:73:36:73:56 | this.delegatedToBaseClass2$delegate | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | VarAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | ...::... | delegatedProperties.kt:65:1:85:1 | MyClass | PropertyRefExpr |
|
||||
| delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | KProperty1<Base,Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | a0 | delegatedProperties.kt:73:39:73:56 | get | VarAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | a0 | delegatedProperties.kt:73:39:73:56 | invoke | VarAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | get(...) | delegatedProperties.kt:73:39:73:56 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | getBaseClassInt(...) | delegatedProperties.kt:73:39:73:56 | get | MethodAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | getValue(...) | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | MethodAccess |
|
||||
| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | ...::... | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | PropertyRefExpr |
|
||||
| delegatedProperties.kt:75:39:75:78 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
|
||||
| delegatedProperties.kt:75:39:75:78 | Integer | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | Integer | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | KProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | KProperty1<MyClass,Integer> | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | MyClass | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | PropertyReferenceDelegatesKt | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | a0 | delegatedProperties.kt:75:39:75:78 | get | VarAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | a0 | delegatedProperties.kt:75:39:75:78 | invoke | VarAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | delegatedToAnotherClass1$delegate | delegatedProperties.kt:65:1:85:1 | MyClass | VarAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | get(...) | delegatedProperties.kt:75:39:75:78 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1(...) | delegatedProperties.kt:75:39:75:78 | get | MethodAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | getValue(...) | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | MethodAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | this | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | ThisAccess |
|
||||
| delegatedProperties.kt:75:39:75:78 | this | delegatedProperties.kt:75:39:75:78 | invoke | ThisAccess |
|
||||
@@ -678,12 +681,9 @@
|
||||
| delegatedProperties.kt:75:42:75:78 | <dispatchReceiver> | delegatedProperties.kt:75:42:75:78 | | VarAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | ClassWithDelegate | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | KProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | PropertyReferenceDelegatesKt | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | get(...) | delegatedProperties.kt:75:42:75:78 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | getAnotherClassInt(...) | delegatedProperties.kt:75:42:75:78 | get | MethodAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | getValue(...) | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | MethodAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | | ThisAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | get | ThisAccess |
|
||||
| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | invoke | ThisAccess |
|
||||
@@ -693,6 +693,8 @@
|
||||
| delegatedProperties.kt:77:34:77:49 | ...::... | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | PropertyRefExpr |
|
||||
| delegatedProperties.kt:77:34:77:49 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
|
||||
| delegatedProperties.kt:77:34:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -700,6 +702,8 @@
|
||||
| delegatedProperties.kt:77:34:77:49 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | MyClass | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | MyClass | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | a0 | delegatedProperties.kt:77:34:77:49 | get | VarAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | a0 | delegatedProperties.kt:77:34:77:49 | get | VarAccess |
|
||||
@@ -714,10 +718,12 @@
|
||||
| delegatedProperties.kt:77:34:77:49 | get(...) | delegatedProperties.kt:77:34:77:49 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel(...) | delegatedProperties.kt:77:34:77:49 | get | MethodAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel(...) | delegatedProperties.kt:77:34:77:49 | get | MethodAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | getValue(...) | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | MethodAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel(...) | delegatedProperties.kt:77:34:77:49 | set | MethodAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel(...) | delegatedProperties.kt:77:34:77:49 | set | MethodAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | setValue(...) | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | MethodAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | this | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | ThisAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | this | delegatedProperties.kt:77:34:77:49 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:77:34:77:49 | this | delegatedProperties.kt:77:34:77:49 | invoke | ThisAccess |
|
||||
@@ -729,29 +735,26 @@
|
||||
| delegatedProperties.kt:77:37:77:49 | DelegatedPropertiesKt | delegatedProperties.kt:77:37:77:49 | get | TypeAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | DelegatedPropertiesKt | delegatedProperties.kt:77:37:77:49 | set | TypeAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | KMutableProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | a0 | delegatedProperties.kt:77:37:77:49 | set | VarAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | get(...) | delegatedProperties.kt:77:37:77:49 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | getTopLevelInt(...) | delegatedProperties.kt:77:37:77:49 | get | MethodAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | getValue(...) | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | MethodAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | setTopLevelInt(...) | delegatedProperties.kt:77:37:77:49 | set | MethodAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | setValue(...) | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | MethodAccess |
|
||||
| delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | ...::... | delegatedProperties.kt:79:18:79:38 | getMax | PropertyRefExpr |
|
||||
| delegatedProperties.kt:79:18:79:38 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
|
||||
| delegatedProperties.kt:79:18:79:38 | Integer | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | Integer | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | KProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | KProperty1<MyClass,Integer> | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | MyClass | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | PropertyReferenceDelegatesKt | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | a0 | delegatedProperties.kt:79:18:79:38 | get | VarAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | a0 | delegatedProperties.kt:79:18:79:38 | invoke | VarAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | get(...) | delegatedProperties.kt:79:18:79:38 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | getMax(...) | delegatedProperties.kt:79:18:79:38 | get | MethodAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | getValue(...) | delegatedProperties.kt:79:18:79:38 | getMax | MethodAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | max$delegate | delegatedProperties.kt:65:1:85:1 | MyClass | VarAccess |
|
||||
| delegatedProperties.kt:79:18:79:38 | this | delegatedProperties.kt:79:18:79:38 | getMax | ThisAccess |
|
||||
@@ -759,12 +762,9 @@
|
||||
| delegatedProperties.kt:79:18:79:38 | this.max$delegate | delegatedProperties.kt:79:18:79:38 | getMax | VarAccess |
|
||||
| delegatedProperties.kt:79:21:79:38 | ...::... | delegatedProperties.kt:65:1:85:1 | MyClass | PropertyRefExpr |
|
||||
| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
|
||||
| delegatedProperties.kt:79:21:79:38 | KProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
|
||||
| delegatedProperties.kt:79:21:79:38 | MAX_VALUE | delegatedProperties.kt:79:21:79:38 | get | VarAccess |
|
||||
| delegatedProperties.kt:79:21:79:38 | PropertyReferenceDelegatesKt | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
|
||||
| delegatedProperties.kt:79:21:79:38 | get(...) | delegatedProperties.kt:79:21:79:38 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:79:21:79:38 | getValue(...) | delegatedProperties.kt:79:18:79:38 | getMax | MethodAccess |
|
||||
| delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:81:5:84:5 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | ...::... | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | PropertyRefExpr |
|
||||
@@ -774,6 +774,8 @@
|
||||
| delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3>(...) | delegatedProperties.kt:82:37:82:54 | set | MethodAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3>(...) | delegatedProperties.kt:82:37:82:54 | set | MethodAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | KMutableProperty0<Integer> | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | KMutableProperty0<Integer> | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
|
||||
@@ -781,6 +783,8 @@
|
||||
| delegatedProperties.kt:82:37:82:54 | Object | delegatedProperties.kt:82:37:82:54 | get | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | Object | delegatedProperties.kt:82:37:82:54 | set | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | Object | delegatedProperties.kt:82:37:82:54 | set | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | PropertyReferenceDelegatesKt | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | PropertyReferenceDelegatesKt | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | a0 | delegatedProperties.kt:82:37:82:54 | set | VarAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | a0 | delegatedProperties.kt:82:37:82:54 | set | VarAccess |
|
||||
@@ -789,12 +793,14 @@
|
||||
| delegatedProperties.kt:82:37:82:54 | delegatedToMember3$delegate | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | VarAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | get(...) | delegatedProperties.kt:82:37:82:54 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | get(...) | delegatedProperties.kt:82:37:82:54 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | getValue(...) | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | MethodAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | new (...) | delegatedProperties.kt:82:37:82:54 | get | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:82:37:82:54 | new (...) | delegatedProperties.kt:82:37:82:54 | get | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:82:37:82:54 | new (...) | delegatedProperties.kt:82:37:82:54 | set | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:82:37:82:54 | new (...) | delegatedProperties.kt:82:37:82:54 | set | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:82:37:82:54 | setValue(...) | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | MethodAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | this | delegatedProperties.kt:82:37:82:54 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:82:37:82:54 | this | delegatedProperties.kt:82:37:82:54 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:82:40:82:43 | this | delegatedProperties.kt:81:5:84:5 | fn | ThisAccess |
|
||||
@@ -802,18 +808,12 @@
|
||||
| delegatedProperties.kt:82:40:82:54 | ...=... | delegatedProperties.kt:82:40:82:54 | | AssignExpr |
|
||||
| delegatedProperties.kt:82:40:82:54 | <dispatchReceiver> | delegatedProperties.kt:82:40:82:54 | | VarAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | Integer | delegatedProperties.kt:81:5:84:5 | fn | TypeAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | KMutableProperty0<Integer> | delegatedProperties.kt:81:5:84:5 | fn | TypeAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | PropertyReferenceDelegatesKt | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | PropertyReferenceDelegatesKt | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | a0 | delegatedProperties.kt:82:40:82:54 | set | VarAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | get(...) | delegatedProperties.kt:82:40:82:54 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | getMemberInt(...) | delegatedProperties.kt:82:40:82:54 | get | MethodAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | getValue(...) | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | MethodAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | setMemberInt(...) | delegatedProperties.kt:82:40:82:54 | set | MethodAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | setValue(...) | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | MethodAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | this | delegatedProperties.kt:82:40:82:54 | | ThisAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | this | delegatedProperties.kt:82:40:82:54 | get | ThisAccess |
|
||||
| delegatedProperties.kt:82:40:82:54 | this | delegatedProperties.kt:82:40:82:54 | invoke | ThisAccess |
|
||||
@@ -840,6 +840,8 @@
|
||||
| delegatedProperties.kt:87:31:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:87:31:87:46 | getExtDelegated | VarAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:87:31:87:46 | setExtDelegated | VarAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -847,6 +849,8 @@
|
||||
| delegatedProperties.kt:87:31:87:46 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | MyClass | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | MyClass | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | a0 | delegatedProperties.kt:87:31:87:46 | get | VarAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | a0 | delegatedProperties.kt:87:31:87:46 | get | VarAccess |
|
||||
@@ -860,10 +864,12 @@
|
||||
| delegatedProperties.kt:87:31:87:46 | get(...) | delegatedProperties.kt:87:31:87:46 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | getExtDelegated(...) | delegatedProperties.kt:87:31:87:46 | get | MethodAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | getExtDelegated(...) | delegatedProperties.kt:87:31:87:46 | get | MethodAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | getValue(...) | delegatedProperties.kt:87:31:87:46 | getExtDelegated | MethodAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | setExtDelegated(...) | delegatedProperties.kt:87:31:87:46 | set | MethodAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | setExtDelegated(...) | delegatedProperties.kt:87:31:87:46 | set | MethodAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | setValue(...) | delegatedProperties.kt:87:31:87:46 | setExtDelegated | MethodAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | this | delegatedProperties.kt:87:31:87:46 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:87:31:87:46 | this | delegatedProperties.kt:87:31:87:46 | invoke | ThisAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:0:0:0:0 | <clinit> | PropertyRefExpr |
|
||||
@@ -871,17 +877,11 @@
|
||||
| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | get | TypeAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | set | TypeAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:0:0:0:0 | <clinit> | TypeAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | KMutableProperty0<Integer> | delegatedProperties.kt:0:0:0:0 | <clinit> | TypeAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | a0 | delegatedProperties.kt:87:34:87:46 | set | VarAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | get(...) | delegatedProperties.kt:87:34:87:46 | invoke | MethodAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | getTopLevelInt(...) | delegatedProperties.kt:87:34:87:46 | get | MethodAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | getValue(...) | delegatedProperties.kt:87:31:87:46 | getExtDelegated | MethodAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | setTopLevelInt(...) | delegatedProperties.kt:87:34:87:46 | set | MethodAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | setValue(...) | delegatedProperties.kt:87:31:87:46 | setExtDelegated | MethodAccess |
|
||||
| delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess |
|
||||
| exprs.kt:0:0:0:0 | Color | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:0:0:0:0 | Color | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -948,7 +948,7 @@
|
||||
| exprs.kt:21:21:21:21 | y | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
| exprs.kt:22:5:22:21 | i12 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
|
||||
| exprs.kt:22:15:22:15 | x | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
| exprs.kt:22:17:22:21 | ~... | exprs.kt:4:1:136:1 | topLevelMethod | BitNotExpr |
|
||||
| exprs.kt:22:15:22:21 | ~... | exprs.kt:4:1:136:1 | topLevelMethod | BitNotExpr |
|
||||
| exprs.kt:23:5:23:20 | i13 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
|
||||
| exprs.kt:23:15:23:15 | x | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
| exprs.kt:23:15:23:20 | ... (value equals) ... | exprs.kt:4:1:136:1 | topLevelMethod | ValueEQExpr |
|
||||
@@ -1162,7 +1162,7 @@
|
||||
| exprs.kt:72:22:72:23 | ly | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
| exprs.kt:73:5:73:22 | l12 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
|
||||
| exprs.kt:73:15:73:16 | lx | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
| exprs.kt:73:18:73:22 | ~... | exprs.kt:4:1:136:1 | topLevelMethod | BitNotExpr |
|
||||
| exprs.kt:73:15:73:22 | ~... | exprs.kt:4:1:136:1 | topLevelMethod | BitNotExpr |
|
||||
| exprs.kt:74:5:74:22 | l13 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
|
||||
| exprs.kt:74:15:74:16 | lx | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
| exprs.kt:74:15:74:22 | ... (value equals) ... | exprs.kt:4:1:136:1 | topLevelMethod | ValueEQExpr |
|
||||
@@ -1430,7 +1430,7 @@
|
||||
| exprs.kt:159:9:159:18 | Polygon | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:160:5:160:25 | r | exprs.kt:159:1:166:1 | foo | LocalVariableDeclExpr |
|
||||
| exprs.kt:160:13:160:13 | p | exprs.kt:159:1:166:1 | foo | VarAccess |
|
||||
| exprs.kt:160:15:160:25 | getBounds(...) | exprs.kt:159:1:166:1 | foo | MethodAccess |
|
||||
| exprs.kt:160:13:160:25 | getBounds(...) | exprs.kt:159:1:166:1 | foo | MethodAccess |
|
||||
| exprs.kt:161:5:165:5 | when ... | exprs.kt:159:1:166:1 | foo | WhenExpr |
|
||||
| exprs.kt:161:8:161:8 | r | exprs.kt:159:1:166:1 | foo | VarAccess |
|
||||
| exprs.kt:161:8:161:16 | ... (value not-equals) ... | exprs.kt:159:1:166:1 | foo | ValueNEExpr |
|
||||
@@ -1534,8 +1534,8 @@
|
||||
| exprs.kt:190:31:190:32 | getA1(...) | exprs.kt:189:16:191:9 | | MethodAccess |
|
||||
| exprs.kt:190:31:190:32 | this | exprs.kt:189:16:191:9 | | ThisAccess |
|
||||
| exprs.kt:190:31:190:37 | ... + ... | exprs.kt:189:16:191:9 | | AddExpr |
|
||||
| exprs.kt:190:31:190:49 | toString(...) | exprs.kt:189:16:191:9 | | MethodAccess |
|
||||
| exprs.kt:190:36:190:37 | a2 | exprs.kt:189:16:191:9 | | VarAccess |
|
||||
| exprs.kt:190:40:190:49 | toString(...) | exprs.kt:189:16:191:9 | | MethodAccess |
|
||||
| exprs.kt:195:1:197:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:195:22:195:28 | Object | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:196:5:196:20 | y | exprs.kt:195:1:197:1 | notNullAssertion | LocalVariableDeclExpr |
|
||||
@@ -1546,12 +1546,12 @@
|
||||
| exprs.kt:200:21:200:30 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:202:9:202:29 | a | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
|
||||
| exprs.kt:202:17:202:18 | aa | exprs.kt:200:5:211:5 | x | VarAccess |
|
||||
| exprs.kt:202:20:202:29 | String | exprs.kt:200:5:211:5 | x | TypeAccess |
|
||||
| exprs.kt:202:20:202:29 | valueOf(...) | exprs.kt:200:5:211:5 | x | MethodAccess |
|
||||
| exprs.kt:202:17:202:29 | String | exprs.kt:200:5:211:5 | x | TypeAccess |
|
||||
| exprs.kt:202:17:202:29 | valueOf(...) | exprs.kt:200:5:211:5 | x | MethodAccess |
|
||||
| exprs.kt:203:9:203:27 | b0 | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
|
||||
| exprs.kt:203:19:203:19 | s | exprs.kt:200:5:211:5 | x | VarAccess |
|
||||
| exprs.kt:203:21:203:27 | Intrinsics | exprs.kt:200:5:211:5 | x | TypeAccess |
|
||||
| exprs.kt:203:21:203:27 | stringPlus(...) | exprs.kt:200:5:211:5 | x | MethodAccess |
|
||||
| exprs.kt:203:19:203:27 | Intrinsics | exprs.kt:200:5:211:5 | x | TypeAccess |
|
||||
| exprs.kt:203:19:203:27 | stringPlus(...) | exprs.kt:200:5:211:5 | x | MethodAccess |
|
||||
| exprs.kt:203:26:203:26 | 5 | exprs.kt:200:5:211:5 | x | IntegerLiteral |
|
||||
| exprs.kt:204:9:204:23 | b1 | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
|
||||
| exprs.kt:204:19:204:19 | s | exprs.kt:200:5:211:5 | x | VarAccess |
|
||||
@@ -1561,7 +1561,7 @@
|
||||
| exprs.kt:205:9:205:29 | b2 | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
|
||||
| exprs.kt:205:19:205:19 | s | exprs.kt:200:5:211:5 | x | VarAccess |
|
||||
| exprs.kt:205:20:205:21 | ...!! | exprs.kt:200:5:211:5 | x | NotNullExpr |
|
||||
| exprs.kt:205:23:205:29 | ... + ... | exprs.kt:200:5:211:5 | x | AddExpr |
|
||||
| exprs.kt:205:20:205:29 | ... + ... | exprs.kt:200:5:211:5 | x | AddExpr |
|
||||
| exprs.kt:205:28:205:28 | 5 | exprs.kt:200:5:211:5 | x | IntegerLiteral |
|
||||
| exprs.kt:206:9:206:25 | b3 | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
|
||||
| exprs.kt:206:19:206:19 | s | exprs.kt:200:5:211:5 | x | VarAccess |
|
||||
@@ -1802,25 +1802,25 @@
|
||||
| exprs.kt:289:7:289:8 | i0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:289:7:289:8 | i0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:290:5:290:6 | i0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:290:5:290:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:290:8:290:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:290:8:290:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:290:8:290:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:291:5:291:6 | i0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:291:5:291:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:291:8:291:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:291:8:291:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:291:8:291:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:292:5:292:6 | i1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:292:5:292:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:292:8:292:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:292:8:292:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:292:8:292:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:293:5:293:6 | i1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:293:5:293:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:293:8:293:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:293:8:293:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:293:8:293:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:294:5:294:5 | i | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:294:5:294:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
|
||||
| exprs.kt:294:7:294:11 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:294:7:294:11 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:294:7:294:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
|
||||
| exprs.kt:296:5:296:6 | -... | exprs.kt:279:1:340:1 | unaryExprs | MinusExpr |
|
||||
| exprs.kt:296:5:296:6 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:296:5:296:6 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
@@ -1870,25 +1870,25 @@
|
||||
| exprs.kt:303:7:303:8 | b0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:303:7:303:8 | b0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:304:5:304:6 | b0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:304:5:304:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:304:8:304:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:304:8:304:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:304:8:304:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:305:5:305:6 | b0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:305:5:305:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:305:8:305:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:305:8:305:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:305:8:305:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:306:5:306:6 | b1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:306:5:306:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:306:8:306:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:306:8:306:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:306:8:306:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:307:5:307:6 | b1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:307:5:307:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:307:8:307:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:307:8:307:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:307:8:307:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:308:5:308:5 | b | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:308:5:308:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
|
||||
| exprs.kt:308:7:308:11 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:308:7:308:11 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:308:7:308:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
|
||||
| exprs.kt:310:5:310:6 | -... | exprs.kt:279:1:340:1 | unaryExprs | MinusExpr |
|
||||
| exprs.kt:310:5:310:6 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:310:5:310:6 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
@@ -1938,25 +1938,25 @@
|
||||
| exprs.kt:317:7:317:8 | s0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:317:7:317:8 | s0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:318:5:318:6 | s0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:318:5:318:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:318:8:318:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:318:8:318:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:318:8:318:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:319:5:319:6 | s0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:319:5:319:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:319:8:319:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:319:8:319:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:319:8:319:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:320:5:320:6 | s1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:320:5:320:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:320:8:320:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:320:8:320:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:320:8:320:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:321:5:321:6 | s1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:321:5:321:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:321:8:321:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:321:8:321:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:321:8:321:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:322:5:322:5 | s | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:322:5:322:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
|
||||
| exprs.kt:322:7:322:11 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:322:7:322:11 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:322:7:322:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
|
||||
| exprs.kt:324:5:324:6 | -... | exprs.kt:279:1:340:1 | unaryExprs | MinusExpr |
|
||||
| exprs.kt:324:5:324:6 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:324:5:324:6 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
@@ -2006,25 +2006,25 @@
|
||||
| exprs.kt:331:7:331:8 | l0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:331:7:331:8 | l0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:332:5:332:6 | l0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:332:5:332:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:332:8:332:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:332:8:332:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:332:8:332:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:333:5:333:6 | l0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:333:5:333:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:333:8:333:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:333:8:333:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:333:8:333:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:334:5:334:6 | l1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:334:5:334:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:334:8:334:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:334:8:334:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:334:8:334:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:335:5:335:6 | l1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:335:5:335:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:335:8:335:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:335:8:335:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:335:8:335:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
|
||||
| exprs.kt:336:5:336:5 | l | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
|
||||
| exprs.kt:336:5:336:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
|
||||
| exprs.kt:336:7:336:11 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:336:7:336:11 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
| exprs.kt:336:7:336:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
|
||||
| exprs.kt:338:5:338:6 | +... | exprs.kt:279:1:340:1 | unaryExprs | PlusExpr |
|
||||
| exprs.kt:338:5:338:6 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:338:5:338:6 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
|
||||
@@ -3234,11 +3234,11 @@
|
||||
| funcExprs.kt:83:31:83:51 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:83:33:83:33 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:83:38:83:38 | i | funcExprs.kt:83:31:83:51 | invoke | VarAccess |
|
||||
| funcExprs.kt:83:40:83:49 | toString(...) | funcExprs.kt:83:31:83:51 | invoke | MethodAccess |
|
||||
| funcExprs.kt:83:38:83:49 | toString(...) | funcExprs.kt:83:31:83:51 | invoke | MethodAccess |
|
||||
| funcExprs.kt:84:5:84:6 | l1 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:84:5:84:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:84:8:84:16 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:84:8:84:16 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:84:8:84:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:84:15:84:15 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:86:5:86:59 | l2 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:86:39:86:59 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr |
|
||||
@@ -3248,11 +3248,11 @@
|
||||
| funcExprs.kt:86:39:86:59 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:86:41:86:41 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:86:46:86:46 | i | funcExprs.kt:86:39:86:59 | invoke | VarAccess |
|
||||
| funcExprs.kt:86:48:86:57 | toString(...) | funcExprs.kt:86:39:86:59 | invoke | MethodAccess |
|
||||
| funcExprs.kt:86:46:86:57 | toString(...) | funcExprs.kt:86:39:86:59 | invoke | MethodAccess |
|
||||
| funcExprs.kt:87:5:87:6 | l2 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:87:5:87:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:87:8:87:16 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:87:8:87:16 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:87:8:87:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:87:15:87:15 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:89:5:90:69 | l3 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:90:15:90:69 | 0 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
@@ -3401,13 +3401,13 @@
|
||||
| funcExprs.kt:90:61:90:61 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:67:90:68 | | funcExprs.kt:90:15:90:69 | invoke | StringLiteral |
|
||||
| funcExprs.kt:91:5:91:6 | l3 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:91:8:91:60 | 23 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:5:91:60 | 23 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:5:91:60 | Object | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:91:5:91:60 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:91:5:91:60 | new Object[] | funcExprs.kt:82:9:96:1 | fn | ArrayCreationExpr |
|
||||
| funcExprs.kt:91:5:91:60 | {...} | funcExprs.kt:82:9:96:1 | fn | ArrayInit |
|
||||
| funcExprs.kt:91:8:91:60 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:91:8:91:60 | Object | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:91:8:91:60 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:91:8:91:60 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:91:8:91:60 | new Object[] | funcExprs.kt:82:9:96:1 | fn | ArrayCreationExpr |
|
||||
| funcExprs.kt:91:8:91:60 | {...} | funcExprs.kt:82:9:96:1 | fn | ArrayInit |
|
||||
| funcExprs.kt:91:15:91:15 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:17:91:17 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:19:91:19 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
@@ -3482,9 +3482,9 @@
|
||||
| funcExprs.kt:94:59:94:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:65:94:66 | | funcExprs.kt:94:15:94:67 | invoke | StringLiteral |
|
||||
| funcExprs.kt:95:5:95:6 | l4 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:95:5:95:58 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:95:8:95:58 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:95:8:95:58 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:95:8:95:58 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:95:15:95:15 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:17:95:17 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:19:95:19 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
@@ -3560,22 +3560,22 @@
|
||||
| localFunctionCalls.kt:10:5:10:13 | C1<Integer> | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:10:5:10:13 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:10:5:10:13 | new C1<Integer>(...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
|
||||
| localFunctionCalls.kt:10:5:10:20 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:10:5:10:20 | Object | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:10:5:10:20 | f1(...) | localFunctionCalls.kt:3:1:12:1 | x | MethodAccess |
|
||||
| localFunctionCalls.kt:10:5:10:20 | new (...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
|
||||
| localFunctionCalls.kt:10:15:10:20 | <implicit coercion to unit> | localFunctionCalls.kt:3:1:12:1 | x | ImplicitCoercionToUnitExpr |
|
||||
| localFunctionCalls.kt:10:15:10:20 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:10:15:10:20 | Object | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:10:15:10:20 | Unit | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:10:15:10:20 | f1(...) | localFunctionCalls.kt:3:1:12:1 | x | MethodAccess |
|
||||
| localFunctionCalls.kt:10:15:10:20 | new (...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
|
||||
| localFunctionCalls.kt:10:18:10:19 | 42 | localFunctionCalls.kt:3:1:12:1 | x | IntegerLiteral |
|
||||
| localFunctionCalls.kt:11:5:11:13 | C1<Integer> | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:11:5:11:13 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:11:5:11:13 | new C1<Integer>(...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
|
||||
| localFunctionCalls.kt:11:5:11:20 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:11:5:11:20 | Object | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:11:5:11:20 | f1(...) | localFunctionCalls.kt:3:1:12:1 | x | MethodAccess |
|
||||
| localFunctionCalls.kt:11:5:11:20 | new (...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
|
||||
| localFunctionCalls.kt:11:15:11:20 | <implicit coercion to unit> | localFunctionCalls.kt:3:1:12:1 | x | ImplicitCoercionToUnitExpr |
|
||||
| localFunctionCalls.kt:11:15:11:20 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:11:15:11:20 | Object | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:11:15:11:20 | Unit | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
|
||||
| localFunctionCalls.kt:11:15:11:20 | f1(...) | localFunctionCalls.kt:3:1:12:1 | x | MethodAccess |
|
||||
| localFunctionCalls.kt:11:15:11:20 | new (...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
|
||||
| localFunctionCalls.kt:11:18:11:19 | 42 | localFunctionCalls.kt:3:1:12:1 | x | IntegerLiteral |
|
||||
| samConversion.kt:1:1:14:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:1:10:1:19 | boolean | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -4259,7 +4259,7 @@
|
||||
| samConversion.kt:58:35:58:35 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:40:58:43 | INSTANCE | samConversion.kt:58:30:58:45 | invoke | VarAccess |
|
||||
| samConversion.kt:59:5:59:6 | i0 | samConversion.kt:57:9:60:1 | test | VarAccess |
|
||||
| samConversion.kt:59:8:59:15 | fn1(...) | samConversion.kt:57:9:60:1 | test | MethodAccess |
|
||||
| samConversion.kt:59:5:59:15 | fn1(...) | samConversion.kt:57:9:60:1 | test | MethodAccess |
|
||||
| samConversion.kt:59:12:59:12 | 1 | samConversion.kt:57:9:60:1 | test | IntegerLiteral |
|
||||
| samConversion.kt:59:14:59:14 | 2 | samConversion.kt:57:9:60:1 | test | IntegerLiteral |
|
||||
| samConversion.kt:63:5:63:13 | ...=... | samConversion.kt:62:1:64:1 | PropertyRefsTest | KtInitializerAssignExpr |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
| exprs.kt:22:17:22:21 | ~... | exprs.kt:22:15:22:15 | x |
|
||||
| exprs.kt:22:15:22:21 | ~... | exprs.kt:22:15:22:15 | x |
|
||||
| exprs.kt:32:15:32:26 | !... | exprs.kt:32:15:32:26 | contains(...) |
|
||||
| exprs.kt:73:18:73:22 | ~... | exprs.kt:73:15:73:16 | lx |
|
||||
| exprs.kt:73:15:73:22 | ~... | exprs.kt:73:15:73:16 | lx |
|
||||
| exprs.kt:115:14:115:16 | !... | exprs.kt:115:15:115:16 | b1 |
|
||||
| exprs.kt:196:19:196:20 | ...!! | exprs.kt:196:18:196:18 | x |
|
||||
| exprs.kt:205:20:205:21 | ...!! | exprs.kt:205:19:205:19 | s |
|
||||
@@ -9,15 +9,15 @@
|
||||
| exprs.kt:281:5:281:6 | +... | exprs.kt:281:6:281:6 | i |
|
||||
| exprs.kt:282:5:282:6 | -... | exprs.kt:282:6:282:6 | d |
|
||||
| exprs.kt:283:5:283:6 | +... | exprs.kt:283:6:283:6 | d |
|
||||
| exprs.kt:294:7:294:11 | ~... | exprs.kt:294:5:294:5 | i |
|
||||
| exprs.kt:294:5:294:11 | ~... | exprs.kt:294:5:294:5 | i |
|
||||
| exprs.kt:296:5:296:6 | -... | exprs.kt:296:6:296:6 | b |
|
||||
| exprs.kt:297:5:297:6 | +... | exprs.kt:297:6:297:6 | b |
|
||||
| exprs.kt:308:7:308:11 | ~... | exprs.kt:308:5:308:5 | b |
|
||||
| exprs.kt:308:5:308:11 | ~... | exprs.kt:308:5:308:5 | b |
|
||||
| exprs.kt:310:5:310:6 | -... | exprs.kt:310:6:310:6 | s |
|
||||
| exprs.kt:311:5:311:6 | +... | exprs.kt:311:6:311:6 | s |
|
||||
| exprs.kt:322:7:322:11 | ~... | exprs.kt:322:5:322:5 | s |
|
||||
| exprs.kt:322:5:322:11 | ~... | exprs.kt:322:5:322:5 | s |
|
||||
| exprs.kt:324:5:324:6 | -... | exprs.kt:324:6:324:6 | l |
|
||||
| exprs.kt:325:5:325:6 | +... | exprs.kt:325:6:325:6 | l |
|
||||
| exprs.kt:336:7:336:11 | ~... | exprs.kt:336:5:336:5 | l |
|
||||
| exprs.kt:336:5:336:11 | ~... | exprs.kt:336:5:336:5 | l |
|
||||
| exprs.kt:338:5:338:6 | +... | exprs.kt:338:6:338:6 | f |
|
||||
| exprs.kt:339:5:339:6 | -... | exprs.kt:339:6:339:6 | f |
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
| A.java:3:9:3:49 | someFun(...) | A.java:3:9:3:20 | ExtensionsKt | A.java:3:30:3:44 | new SomeClass(...) |
|
||||
| A.java:3:9:3:49 | someFun(...) | A.java:3:9:3:20 | ExtensionsKt | A.java:3:47:3:48 | "" |
|
||||
| extensions.kt:21:17:21:38 | someClassMethod(...) | extensions.kt:21:5:21:15 | new SomeClass(...) | extensions.kt:21:34:21:36 | foo |
|
||||
| extensions.kt:22:17:22:30 | someFun(...) | extensions.kt:22:17:22:30 | ExtensionsKt | extensions.kt:22:5:22:15 | new SomeClass(...) |
|
||||
| extensions.kt:22:17:22:30 | someFun(...) | extensions.kt:22:17:22:30 | ExtensionsKt | extensions.kt:22:26:22:28 | foo |
|
||||
| extensions.kt:23:17:23:30 | bothFun(...) | extensions.kt:23:17:23:30 | ExtensionsKt | extensions.kt:23:5:23:15 | new SomeClass(...) |
|
||||
| extensions.kt:23:17:23:30 | bothFun(...) | extensions.kt:23:17:23:30 | ExtensionsKt | extensions.kt:23:26:23:28 | foo |
|
||||
| extensions.kt:24:17:24:35 | bothFunDiffTypes(...) | extensions.kt:24:17:24:35 | ExtensionsKt | extensions.kt:24:5:24:15 | new SomeClass(...) |
|
||||
| extensions.kt:24:17:24:35 | bothFunDiffTypes(...) | extensions.kt:24:17:24:35 | ExtensionsKt | extensions.kt:24:34:24:34 | 1 |
|
||||
| extensions.kt:25:20:25:44 | anotherClassMethod(...) | extensions.kt:25:5:25:18 | new AnotherClass(...) | extensions.kt:25:40:25:42 | foo |
|
||||
| extensions.kt:26:20:26:36 | anotherFun(...) | extensions.kt:26:20:26:36 | ExtensionsKt | extensions.kt:26:5:26:18 | new AnotherClass(...) |
|
||||
| extensions.kt:26:20:26:36 | anotherFun(...) | extensions.kt:26:20:26:36 | ExtensionsKt | extensions.kt:26:32:26:34 | foo |
|
||||
| extensions.kt:27:20:27:33 | bothFun(...) | extensions.kt:27:20:27:33 | ExtensionsKt | extensions.kt:27:5:27:18 | new AnotherClass(...) |
|
||||
| extensions.kt:27:20:27:33 | bothFun(...) | extensions.kt:27:20:27:33 | ExtensionsKt | extensions.kt:27:29:27:31 | foo |
|
||||
| extensions.kt:28:20:28:42 | bothFunDiffTypes(...) | extensions.kt:28:20:28:42 | ExtensionsKt | extensions.kt:28:5:28:18 | new AnotherClass(...) |
|
||||
| extensions.kt:28:20:28:42 | bothFunDiffTypes(...) | extensions.kt:28:20:28:42 | ExtensionsKt | extensions.kt:28:38:28:40 | foo |
|
||||
| extensions.kt:29:18:29:27 | bar(...) | extensions.kt:29:18:29:27 | ExtensionsKt | extensions.kt:29:6:29:15 | someString |
|
||||
| extensions.kt:29:18:29:27 | bar(...) | extensions.kt:29:18:29:27 | ExtensionsKt | extensions.kt:29:23:29:25 | foo |
|
||||
| extensions.kt:31:18:31:32 | baz(...) | extensions.kt:31:18:31:32 | new (...) | extensions.kt:31:6:31:15 | someString |
|
||||
| extensions.kt:31:18:31:32 | baz(...) | extensions.kt:31:18:31:32 | new (...) | extensions.kt:31:23:31:30 | bazParam |
|
||||
| extensions.kt:21:5:21:38 | someClassMethod(...) | extensions.kt:21:5:21:15 | new SomeClass(...) | extensions.kt:21:34:21:36 | foo |
|
||||
| extensions.kt:22:5:22:30 | someFun(...) | extensions.kt:22:5:22:30 | ExtensionsKt | extensions.kt:22:5:22:15 | new SomeClass(...) |
|
||||
| extensions.kt:22:5:22:30 | someFun(...) | extensions.kt:22:5:22:30 | ExtensionsKt | extensions.kt:22:26:22:28 | foo |
|
||||
| extensions.kt:23:5:23:30 | bothFun(...) | extensions.kt:23:5:23:30 | ExtensionsKt | extensions.kt:23:5:23:15 | new SomeClass(...) |
|
||||
| extensions.kt:23:5:23:30 | bothFun(...) | extensions.kt:23:5:23:30 | ExtensionsKt | extensions.kt:23:26:23:28 | foo |
|
||||
| extensions.kt:24:5:24:35 | bothFunDiffTypes(...) | extensions.kt:24:5:24:35 | ExtensionsKt | extensions.kt:24:5:24:15 | new SomeClass(...) |
|
||||
| extensions.kt:24:5:24:35 | bothFunDiffTypes(...) | extensions.kt:24:5:24:35 | ExtensionsKt | extensions.kt:24:34:24:34 | 1 |
|
||||
| extensions.kt:25:5:25:44 | anotherClassMethod(...) | extensions.kt:25:5:25:18 | new AnotherClass(...) | extensions.kt:25:40:25:42 | foo |
|
||||
| extensions.kt:26:5:26:36 | anotherFun(...) | extensions.kt:26:5:26:36 | ExtensionsKt | extensions.kt:26:5:26:18 | new AnotherClass(...) |
|
||||
| extensions.kt:26:5:26:36 | anotherFun(...) | extensions.kt:26:5:26:36 | ExtensionsKt | extensions.kt:26:32:26:34 | foo |
|
||||
| extensions.kt:27:5:27:33 | bothFun(...) | extensions.kt:27:5:27:33 | ExtensionsKt | extensions.kt:27:5:27:18 | new AnotherClass(...) |
|
||||
| extensions.kt:27:5:27:33 | bothFun(...) | extensions.kt:27:5:27:33 | ExtensionsKt | extensions.kt:27:29:27:31 | foo |
|
||||
| extensions.kt:28:5:28:42 | bothFunDiffTypes(...) | extensions.kt:28:5:28:42 | ExtensionsKt | extensions.kt:28:5:28:18 | new AnotherClass(...) |
|
||||
| extensions.kt:28:5:28:42 | bothFunDiffTypes(...) | extensions.kt:28:5:28:42 | ExtensionsKt | extensions.kt:28:38:28:40 | foo |
|
||||
| extensions.kt:29:6:29:27 | bar(...) | extensions.kt:29:6:29:27 | ExtensionsKt | extensions.kt:29:6:29:15 | someString |
|
||||
| extensions.kt:29:6:29:27 | bar(...) | extensions.kt:29:6:29:27 | ExtensionsKt | extensions.kt:29:23:29:25 | foo |
|
||||
| extensions.kt:31:6:31:32 | baz(...) | extensions.kt:31:6:31:32 | new (...) | extensions.kt:31:6:31:15 | someString |
|
||||
| extensions.kt:31:6:31:32 | baz(...) | extensions.kt:31:6:31:32 | new (...) | extensions.kt:31:23:31:30 | bazParam |
|
||||
|
||||
@@ -1 +1 @@
|
||||
| A.kt:4:21:4:29 | someFun(...) | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | someFun | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | C<D1,D2,E1,E2> | file:///!unknown-binary-location/OC.class:0:0:0:0 | OC<F1,F2> |
|
||||
| A.kt:4:19:4:29 | someFun(...) | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | someFun | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | C<D1,D2,E1,E2> | file:///!unknown-binary-location/OC.class:0:0:0:0 | OC<F1,F2> |
|
||||
|
||||
@@ -1 +1 @@
|
||||
| A.kt:4:21:4:29 | someFun(...) | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | someFun | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | C<D1,D2,E1,E2> | file:///!unknown-binary-location/OC.class:0:0:0:0 | OC<F1,F2> |
|
||||
| A.kt:4:19:4:29 | someFun(...) | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | someFun | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | C<D1,D2,E1,E2> | file:///!unknown-binary-location/OC.class:0:0:0:0 | OC<F1,F2> |
|
||||
|
||||
@@ -13,13 +13,13 @@ callArgs
|
||||
| KotlinUser.kt:10:13:10:29 | new OuterNotGeneric(...) | KotlinUser.kt:10:13:10:29 | OuterNotGeneric | -3 |
|
||||
| KotlinUser.kt:10:31:10:52 | new InnerGeneric<String>(...) | KotlinUser.kt:10:13:10:29 | new OuterNotGeneric(...) | -2 |
|
||||
| KotlinUser.kt:10:31:10:52 | new InnerGeneric<String>(...) | KotlinUser.kt:10:31:10:52 | InnerGeneric<String> | -3 |
|
||||
| KotlinUser.kt:12:21:12:44 | returnsecond(...) | KotlinUser.kt:12:19:12:19 | a | -1 |
|
||||
| KotlinUser.kt:12:21:12:44 | returnsecond(...) | KotlinUser.kt:12:34:12:34 | 0 | 0 |
|
||||
| KotlinUser.kt:12:21:12:44 | returnsecond(...) | KotlinUser.kt:12:38:12:42 | hello | 1 |
|
||||
| KotlinUser.kt:13:21:13:31 | identity(...) | KotlinUser.kt:13:19:13:19 | b | -1 |
|
||||
| KotlinUser.kt:13:21:13:31 | identity(...) | KotlinUser.kt:13:30:13:30 | 5 | 0 |
|
||||
| KotlinUser.kt:14:21:14:37 | identity(...) | KotlinUser.kt:14:19:14:19 | c | -1 |
|
||||
| KotlinUser.kt:14:21:14:37 | identity(...) | KotlinUser.kt:14:31:14:35 | world | 0 |
|
||||
| KotlinUser.kt:12:19:12:44 | returnsecond(...) | KotlinUser.kt:12:19:12:19 | a | -1 |
|
||||
| KotlinUser.kt:12:19:12:44 | returnsecond(...) | KotlinUser.kt:12:34:12:34 | 0 | 0 |
|
||||
| KotlinUser.kt:12:19:12:44 | returnsecond(...) | KotlinUser.kt:12:38:12:42 | hello | 1 |
|
||||
| KotlinUser.kt:13:19:13:31 | identity(...) | KotlinUser.kt:13:19:13:19 | b | -1 |
|
||||
| KotlinUser.kt:13:19:13:31 | identity(...) | KotlinUser.kt:13:30:13:30 | 5 | 0 |
|
||||
| KotlinUser.kt:14:19:14:37 | identity(...) | KotlinUser.kt:14:19:14:19 | c | -1 |
|
||||
| KotlinUser.kt:14:19:14:37 | identity(...) | KotlinUser.kt:14:31:14:35 | world | 0 |
|
||||
genericTypes
|
||||
| OuterGeneric.kt:3:1:21:1 | OuterGeneric | OuterGeneric.kt:3:27:3:27 | T |
|
||||
| OuterGeneric.kt:11:3:19:3 | InnerGeneric | OuterGeneric.kt:11:35:11:35 | S |
|
||||
|
||||
@@ -8,12 +8,12 @@ calls
|
||||
| test.kt:5:32:5:46 | identity(...) | test.kt:5:3:5:46 | identity2 | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | test.kt:1:1:13:1 | Generic |
|
||||
| test.kt:7:21:7:26 | getStored(...) | test.kt:7:3:7:26 | getter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | test.kt:1:1:13:1 | Generic |
|
||||
| test.kt:8:26:8:31 | setStored(...) | test.kt:8:3:8:41 | setter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | test.kt:1:1:13:1 | Generic |
|
||||
| test.kt:11:47:11:70 | privateid(...) | test.kt:11:3:11:70 | callPrivateId | test.kt:1:1:13:1 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
|
||||
| test.kt:18:13:18:35 | identity(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
|
||||
| test.kt:19:13:19:36 | identity2(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
|
||||
| test.kt:22:16:22:23 | getter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> |
|
||||
| test.kt:25:15:25:33 | setter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> |
|
||||
| test.kt:26:15:26:22 | getter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> |
|
||||
| test.kt:11:44:11:70 | privateid(...) | test.kt:11:3:11:70 | callPrivateId | test.kt:1:1:13:1 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
|
||||
| test.kt:18:3:18:35 | identity(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
|
||||
| test.kt:19:3:19:36 | identity2(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
|
||||
| test.kt:22:3:22:23 | getter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> |
|
||||
| test.kt:25:3:25:33 | setter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> |
|
||||
| test.kt:26:3:26:22 | getter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> |
|
||||
constructors
|
||||
| Generic2.class:0:0:0:0 | Generic2<? extends String> | Generic2.class:0:0:0:0 | Generic2<? extends String> | Generic2<? extends String>(<nulltype>) | <nulltype> | void | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 |
|
||||
| Generic2.class:0:0:0:0 | Generic2<? super String> | Generic2.class:0:0:0:0 | Generic2<? super String> | Generic2<? super String>(java.lang.String) | String | void | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 |
|
||||
|
||||
@@ -56,10 +56,10 @@ genericFunction
|
||||
| generics.kt:57:5:62:5 | fn1 | generics.kt:56:1:63:1 | Class1 | generics.kt:57:10:57:11 | T2 | 0 |
|
||||
| generics.kt:59:13:59:43 | fn2 | generics.kt:58:9:60:9 | Local | generics.kt:59:18:59:19 | T4 | 0 |
|
||||
genericCall
|
||||
| generics.kt:27:17:27:22 | f2(...) | generics.kt:15:10:15:10 | U | String |
|
||||
| generics.kt:30:17:30:21 | f2(...) | generics.kt:15:10:15:10 | U | Integer |
|
||||
| generics.kt:32:8:32:12 | f4(...) | generics.kt:21:10:21:10 | P | Integer |
|
||||
| generics.kt:61:22:61:31 | fn2(...) | generics.kt:59:18:59:19 | T4 | String |
|
||||
| generics.kt:27:14:27:22 | f2(...) | generics.kt:15:10:15:10 | U | String |
|
||||
| generics.kt:30:14:30:21 | f2(...) | generics.kt:15:10:15:10 | U | Integer |
|
||||
| generics.kt:32:5:32:12 | f4(...) | generics.kt:21:10:21:10 | P | Integer |
|
||||
| generics.kt:61:9:61:31 | fn2(...) | generics.kt:59:18:59:19 | T4 | String |
|
||||
genericCtor
|
||||
| generics.kt:16:16:16:26 | new C1<U,U>(...) | 0 | U |
|
||||
| generics.kt:16:16:16:26 | new C1<U,U>(...) | 1 | U |
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
| Test.java:25:5:25:16 | hashCode(...) | hashCode | Object |
|
||||
| Test.java:26:5:26:17 | inheritMe(...) | inheritMe | Test |
|
||||
| Test.java:28:5:28:34 | inheritedInterfaceMethodJ(...) | inheritedInterfaceMethodJ | ParentIf |
|
||||
| Test.kt:23:7:23:16 | toString(...) | toString | Object |
|
||||
| Test.kt:24:7:24:15 | equals(...) | equals | Object |
|
||||
| Test.kt:25:7:25:16 | hashCode(...) | hashCode | Object |
|
||||
| Test.kt:26:7:26:17 | inheritMe(...) | inheritMe | TestKt |
|
||||
| Test.kt:28:9:28:35 | inheritedInterfaceMethodK(...) | inheritedInterfaceMethodK | ParentIfK |
|
||||
| Test.kt:23:5:23:16 | toString(...) | toString | Object |
|
||||
| Test.kt:24:5:24:15 | equals(...) | equals | Object |
|
||||
| Test.kt:25:5:25:16 | hashCode(...) | hashCode | Object |
|
||||
| Test.kt:26:5:26:17 | inheritMe(...) | inheritMe | TestKt |
|
||||
| Test.kt:28:5:28:35 | inheritedInterfaceMethodK(...) | inheritedInterfaceMethodK | ParentIfK |
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
| user.kt:1:42:1:58 | contains(...) |
|
||||
| user.kt:1:40:1:58 | contains(...) |
|
||||
| user.kt:1:63:1:74 | contains(...) |
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
| test.kt:3:8:3:28 | f(...) | test.kt:3:8:3:28 | f | test.kt:1:1:5:1 | A |
|
||||
| test.kt:11:16:11:23 | f$default(...) | test.kt:3:8:3:28 | f$default | test.kt:1:1:5:1 | A |
|
||||
@@ -0,0 +1,13 @@
|
||||
open class A {
|
||||
|
||||
open fun f(x: Int = 0) = x
|
||||
|
||||
}
|
||||
|
||||
class B : A() {
|
||||
|
||||
override fun f(x: Int) = x + 1
|
||||
|
||||
fun user() = this.f()
|
||||
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
import java
|
||||
|
||||
from MethodAccess ma
|
||||
select ma, ma.getCallee(), ma.getCallee().getDeclaringType()
|
||||
@@ -19,5 +19,5 @@ signature_mismatch
|
||||
| Java.java:5:3:5:26 | kotlinFun(...) | Kotlin.kt:2:2:4:2 | kotlinFun |
|
||||
| Java.java:11:11:11:22 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 |
|
||||
| Java.java:16:11:16:35 | fn1(...) | java_and_kotlin.testproj/test.class.files/Base.class:0:0:0:0 | fn1 |
|
||||
| Kotlin.kt:13:46:13:51 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 |
|
||||
| Kotlin.kt:14:54:14:59 | fn1(...) | Kotlin.kt:9:18:9:46 | fn1 |
|
||||
| Kotlin.kt:13:40:13:51 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 |
|
||||
| Kotlin.kt:14:48:14:59 | fn1(...) | Kotlin.kt:9:18:9:46 | fn1 |
|
||||
|
||||
@@ -36,16 +36,16 @@ staticMembers
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:24:15:24:34 | getPropWithStaticGetter(...) | test.kt:24:15:24:34 | this | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:25:18:25:60 | setPropWithStaticSetter(...) | test.kt:25:18:25:60 | HasCompanion.Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:25:35:25:54 | setPropWithStaticGetter(...) | test.kt:25:35:25:54 | this | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:52:16:52:32 | staticMethod(...) | test.kt:52:3:52:14 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:53:16:53:35 | nonStaticMethod(...) | test.kt:53:3:53:14 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:52:3:52:32 | staticMethod(...) | test.kt:52:3:52:14 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:53:3:53:35 | nonStaticMethod(...) | test.kt:53:3:53:14 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:54:3:54:25 | setStaticProp(...) | test.kt:54:3:54:14 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:54:42:54:54 | getNonStaticProp(...) | test.kt:54:29:54:40 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:54:29:54:54 | getNonStaticProp(...) | test.kt:54:29:54:40 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:55:3:55:28 | setNonStaticProp(...) | test.kt:55:3:55:14 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:55:45:55:54 | getStaticProp(...) | test.kt:55:32:55:43 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:55:32:55:54 | getStaticProp(...) | test.kt:55:32:55:43 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:56:3:56:35 | setPropWithStaticGetter(...) | test.kt:56:3:56:14 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:56:52:56:71 | getPropWithStaticSetter(...) | test.kt:56:39:56:50 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:56:39:56:71 | getPropWithStaticSetter(...) | test.kt:56:39:56:50 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:57:3:57:35 | setPropWithStaticSetter(...) | test.kt:57:3:57:14 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:57:52:57:71 | getPropWithStaticGetter(...) | test.kt:57:39:57:50 | Companion | instance |
|
||||
| test.kt:11:3:27:3 | Companion | test.kt:57:39:57:71 | getPropWithStaticGetter(...) | test.kt:57:39:57:50 | Companion | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:13:5:13:34 | staticMethod(...) | JavaUser.java:13:5:13:16 | NonCompanion | static |
|
||||
| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:14:5:14:46 | nonStaticMethod(...) | JavaUser.java:14:5:14:25 | NonCompanion.INSTANCE | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:15:5:15:72 | setStaticProp(...) | JavaUser.java:15:5:15:16 | NonCompanion | static |
|
||||
@@ -62,13 +62,13 @@ staticMembers
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:41:22:41:41 | setPropWithStaticSetter(...) | test.kt:41:22:41:41 | NonCompanion | static |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:44:13:44:32 | getPropWithStaticGetter(...) | test.kt:44:13:44:32 | NonCompanion | static |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:45:33:45:52 | setPropWithStaticGetter(...) | test.kt:45:33:45:52 | NonCompanion.INSTANCE | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:60:16:60:32 | staticMethod(...) | test.kt:60:16:60:32 | NonCompanion | static |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:61:16:61:35 | nonStaticMethod(...) | test.kt:61:3:61:14 | INSTANCE | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:60:3:60:32 | staticMethod(...) | test.kt:60:3:60:32 | NonCompanion | static |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:61:3:61:35 | nonStaticMethod(...) | test.kt:61:3:61:14 | INSTANCE | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:62:3:62:25 | setStaticProp(...) | test.kt:62:3:62:25 | NonCompanion | static |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:62:42:62:54 | getNonStaticProp(...) | test.kt:62:29:62:40 | INSTANCE | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:62:29:62:54 | getNonStaticProp(...) | test.kt:62:29:62:40 | INSTANCE | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:63:3:63:28 | setNonStaticProp(...) | test.kt:63:3:63:14 | INSTANCE | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:63:45:63:54 | getStaticProp(...) | test.kt:63:45:63:54 | NonCompanion | static |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:63:32:63:54 | getStaticProp(...) | test.kt:63:32:63:54 | NonCompanion | static |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:64:3:64:35 | setPropWithStaticGetter(...) | test.kt:64:3:64:14 | INSTANCE | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:64:52:64:71 | getPropWithStaticSetter(...) | test.kt:64:39:64:50 | INSTANCE | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:64:39:64:71 | getPropWithStaticSetter(...) | test.kt:64:39:64:50 | INSTANCE | instance |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:65:3:65:35 | setPropWithStaticSetter(...) | test.kt:65:3:65:35 | NonCompanion | static |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:65:52:65:71 | getPropWithStaticGetter(...) | test.kt:65:52:65:71 | NonCompanion | static |
|
||||
| test.kt:31:1:47:1 | NonCompanion | test.kt:65:39:65:71 | getPropWithStaticGetter(...) | test.kt:65:39:65:71 | NonCompanion | static |
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
| test.kt:4:15:4:26 | println(...) | file://<external>/ConsoleKt.class:0:0:0:0 | println |
|
||||
| test.kt:9:9:9:13 | getTest0$private(...) | test.kt:2:22:2:40 | getTest0$private |
|
||||
| test.kt:9:15:9:17 | f(...) | test.kt:4:5:4:26 | f |
|
||||
| test.kt:9:9:9:17 | f(...) | test.kt:4:5:4:26 | f |
|
||||
| test.kt:10:13:10:23 | get(...) | test.kt:10:13:10:23 | get |
|
||||
| test.kt:10:13:10:23 | getTest0$private(...) | test.kt:2:22:2:40 | getTest0$private |
|
||||
| test.kt:10:13:10:23 | setTest0$private(...) | test.kt:2:22:2:40 | setTest0$private |
|
||||
| test.kt:10:25:10:37 | isInitialized(...) | file://<external>/LateinitKt.class:0:0:0:0 | isInitialized |
|
||||
| test.kt:14:15:14:17 | f(...) | test.kt:4:5:4:26 | f |
|
||||
| test.kt:10:13:10:37 | isInitialized(...) | file://<external>/LateinitKt.class:0:0:0:0 | isInitialized |
|
||||
| test.kt:14:9:14:17 | f(...) | test.kt:4:5:4:26 | f |
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
| test.kt:1:100:1:109 | mutableIterator(...) | mutableIterator |
|
||||
| test.kt:3:73:3:82 | iterator(...) | iterator |
|
||||
| test.kt:1:98:1:109 | mutableIterator(...) | mutableIterator |
|
||||
| test.kt:3:71:3:82 | iterator(...) | iterator |
|
||||
|
||||
@@ -139,23 +139,23 @@
|
||||
| delegates.kt:4:18:6:5 | ...=... | KtInitializerAssignExpr |
|
||||
| delegates.kt:4:18:6:5 | Integer | TypeAccess |
|
||||
| delegates.kt:4:18:6:5 | Integer | TypeAccess |
|
||||
| delegates.kt:4:18:6:5 | Integer | TypeAccess |
|
||||
| delegates.kt:4:18:6:5 | KProperty1<MyClass,Integer> | TypeAccess |
|
||||
| delegates.kt:4:18:6:5 | Lazy<Integer> | TypeAccess |
|
||||
| delegates.kt:4:18:6:5 | LazyKt | TypeAccess |
|
||||
| delegates.kt:4:18:6:5 | MyClass | TypeAccess |
|
||||
| delegates.kt:4:18:6:5 | a0 | VarAccess |
|
||||
| delegates.kt:4:18:6:5 | a0 | VarAccess |
|
||||
| delegates.kt:4:18:6:5 | get(...) | MethodAccess |
|
||||
| delegates.kt:4:18:6:5 | getLazyProp(...) | MethodAccess |
|
||||
| delegates.kt:4:18:6:5 | getValue(...) | MethodAccess |
|
||||
| delegates.kt:4:18:6:5 | int | TypeAccess |
|
||||
| delegates.kt:4:18:6:5 | lazyProp$delegate | VarAccess |
|
||||
| delegates.kt:4:18:6:5 | this | ThisAccess |
|
||||
| delegates.kt:4:18:6:5 | this | ThisAccess |
|
||||
| delegates.kt:4:18:6:5 | this.lazyProp$delegate | VarAccess |
|
||||
| delegates.kt:4:21:6:5 | Integer | TypeAccess |
|
||||
| delegates.kt:4:21:6:5 | Integer | TypeAccess |
|
||||
| delegates.kt:4:21:6:5 | LazyKt | TypeAccess |
|
||||
| delegates.kt:4:21:6:5 | LazyKt | TypeAccess |
|
||||
| delegates.kt:4:21:6:5 | getValue(...) | MethodAccess |
|
||||
| delegates.kt:4:21:6:5 | lazy(...) | MethodAccess |
|
||||
| delegates.kt:4:26:6:5 | ...->... | LambdaExpr |
|
||||
| delegates.kt:4:26:6:5 | Function0<Integer> | TypeAccess |
|
||||
@@ -189,9 +189,11 @@
|
||||
| delegates.kt:8:32:11:5 | get(...) | MethodAccess |
|
||||
| delegates.kt:8:32:11:5 | getObservableProp(...) | MethodAccess |
|
||||
| delegates.kt:8:32:11:5 | getObservableProp(...) | MethodAccess |
|
||||
| delegates.kt:8:32:11:5 | getValue(...) | MethodAccess |
|
||||
| delegates.kt:8:32:11:5 | observableProp$delegate | VarAccess |
|
||||
| delegates.kt:8:32:11:5 | setObservableProp(...) | MethodAccess |
|
||||
| delegates.kt:8:32:11:5 | setObservableProp(...) | MethodAccess |
|
||||
| delegates.kt:8:32:11:5 | setValue(...) | MethodAccess |
|
||||
| delegates.kt:8:32:11:5 | this | ThisAccess |
|
||||
| delegates.kt:8:32:11:5 | this | ThisAccess |
|
||||
| delegates.kt:8:32:11:5 | this | ThisAccess |
|
||||
@@ -200,10 +202,8 @@
|
||||
| delegates.kt:8:32:11:5 | this.observableProp$delegate | VarAccess |
|
||||
| delegates.kt:8:35:8:43 | INSTANCE | VarAccess |
|
||||
| delegates.kt:8:35:11:5 | <set-?> | VarAccess |
|
||||
| delegates.kt:8:35:11:5 | getValue(...) | MethodAccess |
|
||||
| delegates.kt:8:35:11:5 | setValue(...) | MethodAccess |
|
||||
| delegates.kt:8:45:11:5 | String | TypeAccess |
|
||||
| delegates.kt:8:45:11:5 | observable(...) | MethodAccess |
|
||||
| delegates.kt:8:35:11:5 | String | TypeAccess |
|
||||
| delegates.kt:8:35:11:5 | observable(...) | MethodAccess |
|
||||
| delegates.kt:8:57:8:62 | <none> | StringLiteral |
|
||||
| delegates.kt:8:66:11:5 | ...->... | LambdaExpr |
|
||||
| delegates.kt:8:66:11:5 | Function3<KProperty<?>,String,String,Unit> | TypeAccess |
|
||||
@@ -275,8 +275,8 @@
|
||||
| enumClass.kt:10:14:10:42 | int | TypeAccess |
|
||||
| enumClass.kt:10:20:10:25 | int | TypeAccess |
|
||||
| enumClass.kt:10:30:10:33 | this | ThisAccess |
|
||||
| enumClass.kt:10:30:10:38 | f(...) | MethodAccess |
|
||||
| enumClass.kt:10:30:10:42 | ... + ... | AddExpr |
|
||||
| enumClass.kt:10:35:10:38 | f(...) | MethodAccess |
|
||||
| enumClass.kt:10:37:10:37 | i | VarAccess |
|
||||
| enumClass.kt:10:42:10:42 | i | VarAccess |
|
||||
| enumClass.kt:13:12:13:29 | int | TypeAccess |
|
||||
@@ -326,12 +326,12 @@
|
||||
| methods5.kt:10:3:10:11 | C1<Integer> | TypeAccess |
|
||||
| methods5.kt:10:3:10:11 | Integer | TypeAccess |
|
||||
| methods5.kt:10:3:10:11 | new C1<Integer>(...) | ClassInstanceExpr |
|
||||
| methods5.kt:10:3:10:18 | Integer | TypeAccess |
|
||||
| methods5.kt:10:3:10:18 | Object | TypeAccess |
|
||||
| methods5.kt:10:3:10:18 | f1(...) | MethodAccess |
|
||||
| methods5.kt:10:3:10:18 | new (...) | ClassInstanceExpr |
|
||||
| methods5.kt:10:13:10:18 | <implicit coercion to unit> | ImplicitCoercionToUnitExpr |
|
||||
| methods5.kt:10:13:10:18 | Integer | TypeAccess |
|
||||
| methods5.kt:10:13:10:18 | Object | TypeAccess |
|
||||
| methods5.kt:10:13:10:18 | Unit | TypeAccess |
|
||||
| methods5.kt:10:13:10:18 | f1(...) | MethodAccess |
|
||||
| methods5.kt:10:13:10:18 | new (...) | ClassInstanceExpr |
|
||||
| methods5.kt:10:16:10:17 | 42 | IntegerLiteral |
|
||||
| methods6.kt:3:9:4:1 | Unit | TypeAccess |
|
||||
| methods.kt:2:1:3:1 | Unit | TypeAccess |
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
| file1.kt:4:18:4:23 | fun2(...) | file2.kt:3:5:3:18 | fun2 | Class2.fun2 | file2.kt:2:1:4:1 | Class2 |
|
||||
| file1.kt:4:9:4:23 | fun2(...) | file2.kt:3:5:3:18 | fun2 | Class2.fun2 | file2.kt:2:1:4:1 | Class2 |
|
||||
| file1.kt:5:9:5:14 | fun3(...) | file3.kt:5:1:6:1 | fun3 | MyJvmName.fun3 | file3.kt:0:0:0:0 | MyJvmName |
|
||||
| file1.kt:6:9:6:14 | fun4(...) | file4.kt:4:1:5:1 | fun4 | File4Kt.fun4 | file4.kt:0:0:0:0 | File4Kt |
|
||||
| file1.kt:11:29:11:56 | toArray(...) | file://<external>/CollectionToArray.class:0:0:0:0 | toArray | kotlin.jvm.internal.CollectionToArray.toArray | file://<external>/CollectionToArray.class:0:0:0:0 | CollectionToArray |
|
||||
|
||||
@@ -395,6 +395,23 @@ test.kt:
|
||||
# 1| 2: [NullLiteral] null
|
||||
# 1| 3: [IntegerLiteral] 3
|
||||
# 1| 4: [NullLiteral] null
|
||||
# 232| 11: [Method] varargsConstructorUser
|
||||
# 232| 3: [TypeAccess] Unit
|
||||
# 232| 5: [BlockStmt] { ... }
|
||||
# 233| 0: [ExprStmt] <Expr>;
|
||||
# 233| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
|
||||
# 233| 0: [TypeAccess] Unit
|
||||
# 233| 1: [ClassInstanceExpr] new VarargsConstructorTest(...)
|
||||
# 233| -3: [TypeAccess] VarargsConstructorTest
|
||||
# 233| 0: [StringLiteral] varargs constructor test sunk
|
||||
# 234| 1: [ExprStmt] <Expr>;
|
||||
# 234| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
|
||||
# 234| 0: [TypeAccess] Unit
|
||||
# 234| 1: [ClassInstanceExpr] new VarargsConstructorTest(...)
|
||||
# 234| -3: [TypeAccess] VarargsConstructorTest
|
||||
# 234| 0: [StringLiteral] varargs constructor test sunk 2
|
||||
# 234| 1: [StringLiteral] varargs constructor test not sunk 1
|
||||
# 234| 2: [StringLiteral] varargs constructor test not sunk 2
|
||||
# 3| 2: [Class] TestMember
|
||||
# 3| 1: [Constructor] TestMember
|
||||
# 3| 5: [BlockStmt] { ... }
|
||||
@@ -1688,3 +1705,19 @@ test.kt:
|
||||
# 180| -1: [VarAccess] p0
|
||||
# 180| 0: [VarAccess] p1
|
||||
# 180| 1: [VarAccess] p2
|
||||
# 226| 18: [Class] VarargsConstructorTest
|
||||
# 226| 1: [Constructor] VarargsConstructorTest
|
||||
#-----| 4: (Parameters)
|
||||
# 226| 0: [Parameter] x
|
||||
# 226| 0: [TypeAccess] String
|
||||
# 226| 1: [Parameter] y
|
||||
# 226| 0: [TypeAccess] String[]
|
||||
# 226| 0: [WildcardTypeAccess] ? ...
|
||||
# 226| 0: [TypeAccess] String
|
||||
# 226| 5: [BlockStmt] { ... }
|
||||
# 226| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 226| 1: [BlockStmt] { ... }
|
||||
# 228| 0: [ExprStmt] <Expr>;
|
||||
# 228| 0: [MethodAccess] sink(...)
|
||||
# 228| -1: [TypeAccess] TestKt
|
||||
# 228| 0: [VarAccess] x
|
||||
|
||||
@@ -222,3 +222,14 @@ fun varargsUserOnlySinkRegularArgs() {
|
||||
varargsTestOnlySinkRegularArgs(x = "two-varargs-before sunk 3", "two-vararg-first not sunk 3", "two-vararg-second not sunk 3", z = "two-varargs-after sunk 3")
|
||||
varargsTestOnlySinkRegularArgs("no-z-parmeter sunk 3", "no-z-parameter first vararg not sunk 3", "no-z-parameter second vararg not sunk 3")
|
||||
}
|
||||
|
||||
class VarargsConstructorTest(x: String, vararg y: String) {
|
||||
init {
|
||||
sink(x)
|
||||
}
|
||||
}
|
||||
|
||||
fun varargsConstructorUser() {
|
||||
VarargsConstructorTest("varargs constructor test sunk")
|
||||
VarargsConstructorTest("varargs constructor test sunk 2", "varargs constructor test not sunk 1", "varargs constructor test not sunk 2")
|
||||
}
|
||||
|
||||
@@ -22,20 +22,20 @@ variableInitializerType
|
||||
| reflection.kt:116:9:116:44 | KFunction<Unit> x | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:116:40:116:44 | new Function1<Integer,Unit>(...) { ... } | file://<external>/Function1.class:0:0:0:0 | Function1<Integer,Unit> | true |
|
||||
| reflection.kt:116:9:116:44 | KFunction<Unit> x | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:116:40:116:44 | new Function1<Integer,Unit>(...) { ... } | file://<external>/FunctionReference.class:0:0:0:0 | FunctionReference | true |
|
||||
invocation
|
||||
| reflection.kt:8:21:8:24 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
|
||||
| reflection.kt:11:26:11:33 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
|
||||
| reflection.kt:12:29:12:32 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
|
||||
| reflection.kt:13:48:13:53 | getGetter(...) | file://<external>/KProperty1.class:0:0:0:0 | getGetter |
|
||||
| reflection.kt:8:17:8:24 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
|
||||
| reflection.kt:11:23:11:33 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
|
||||
| reflection.kt:12:26:12:32 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
|
||||
| reflection.kt:13:45:13:53 | getGetter(...) | file://<external>/KProperty1.class:0:0:0:0 | getGetter |
|
||||
| reflection.kt:14:38:14:44 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
|
||||
| reflection.kt:18:27:18:37 | set(...) | file://<external>/KMutableProperty1.class:0:0:0:0 | set |
|
||||
| reflection.kt:19:29:19:32 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
|
||||
| reflection.kt:20:55:20:60 | getSetter(...) | file://<external>/KMutableProperty1.class:0:0:0:0 | getSetter |
|
||||
| reflection.kt:18:24:18:37 | set(...) | file://<external>/KMutableProperty1.class:0:0:0:0 | set |
|
||||
| reflection.kt:19:26:19:32 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
|
||||
| reflection.kt:20:52:20:60 | getSetter(...) | file://<external>/KMutableProperty1.class:0:0:0:0 | getSetter |
|
||||
| reflection.kt:21:44:21:50 | set(...) | file://<external>/KMutableProperty1.class:0:0:0:0 | set |
|
||||
| reflection.kt:24:31:24:37 | getMembers(...) | file://<external>/KClass.class:0:0:0:0 | getMembers |
|
||||
| reflection.kt:24:51:24:54 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
|
||||
| reflection.kt:25:23:25:33 | get(...) | file://<external>/KProperty2.class:0:0:0:0 | get |
|
||||
| reflection.kt:50:30:50:39 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
|
||||
| reflection.kt:51:30:51:34 | get(...) | file://<external>/KProperty0.class:0:0:0:0 | get |
|
||||
| reflection.kt:24:21:24:37 | getMembers(...) | file://<external>/KClass.class:0:0:0:0 | getMembers |
|
||||
| reflection.kt:24:48:24:54 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
|
||||
| reflection.kt:25:18:25:33 | get(...) | file://<external>/KProperty2.class:0:0:0:0 | get |
|
||||
| reflection.kt:50:13:50:39 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
|
||||
| reflection.kt:51:13:51:34 | get(...) | file://<external>/KProperty0.class:0:0:0:0 | get |
|
||||
functionReferences
|
||||
| reflection.kt:7:49:7:54 | ...::... | reflection.kt:7:49:7:54 | invoke | reflection.kt:29:9:29:33 | m |
|
||||
| reflection.kt:14:38:14:44 | ...::... | reflection.kt:14:38:14:44 | invoke | file://<external>/KProperty1.class:0:0:0:0 | get |
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
diag
|
||||
#select
|
||||
| test.kt:1:84:1:89 | length(...) | java.lang.CharSequence | length |
|
||||
| test.kt:1:97:1:100 | size(...) | java.util.Collection<String> | size |
|
||||
| test.kt:1:108:1:111 | size(...) | java.util.Map<String,String> | size |
|
||||
| test.kt:1:119:1:122 | keySet(...) | java.util.Map<String,String> | keySet |
|
||||
| test.kt:1:124:1:127 | size(...) | java.util.Set<String> | size |
|
||||
| test.kt:1:135:1:140 | values(...) | java.util.Map<String,String> | values |
|
||||
| test.kt:1:142:1:145 | size(...) | java.util.Collection<String> | size |
|
||||
| test.kt:1:153:1:159 | entrySet(...) | java.util.Map<String,String> | entrySet |
|
||||
| test.kt:1:161:1:164 | size(...) | java.util.Set<Entry<String,String>> | size |
|
||||
| test.kt:1:81:1:89 | length(...) | java.lang.CharSequence | length |
|
||||
| test.kt:1:93:1:100 | size(...) | java.util.Collection<String> | size |
|
||||
| test.kt:1:104:1:111 | size(...) | java.util.Map<String,String> | size |
|
||||
| test.kt:1:115:1:122 | keySet(...) | java.util.Map<String,String> | keySet |
|
||||
| test.kt:1:115:1:127 | size(...) | java.util.Set<String> | size |
|
||||
| test.kt:1:131:1:140 | values(...) | java.util.Map<String,String> | values |
|
||||
| test.kt:1:131:1:145 | size(...) | java.util.Collection<String> | size |
|
||||
| test.kt:1:149:1:159 | entrySet(...) | java.util.Map<String,String> | entrySet |
|
||||
| test.kt:1:149:1:164 | size(...) | java.util.Set<Entry<String,String>> | size |
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
| test.kt:4:17:4:30 | Class<> | TypeAccess | forName |
|
||||
| test.kt:7:18:7:44 | StringsKt | TypeAccess | format |
|
||||
| test.kt:7:11:7:44 | StringsKt | TypeAccess | format |
|
||||
|
||||
@@ -90,10 +90,10 @@
|
||||
| stmts.kt:41:19:41:36 | tmp3_loop_parameter | VarAccess |
|
||||
| stmts.kt:41:20:41:20 | x | VarAccess |
|
||||
| stmts.kt:41:20:41:23 | rangeTo(...) | MethodAccess |
|
||||
| stmts.kt:41:20:41:36 | CollectionsKt | TypeAccess |
|
||||
| stmts.kt:41:20:41:36 | Integer | TypeAccess |
|
||||
| stmts.kt:41:20:41:36 | withIndex(...) | MethodAccess |
|
||||
| stmts.kt:41:23:41:23 | y | VarAccess |
|
||||
| stmts.kt:41:26:41:36 | CollectionsKt | TypeAccess |
|
||||
| stmts.kt:41:26:41:36 | Integer | TypeAccess |
|
||||
| stmts.kt:41:26:41:36 | withIndex(...) | MethodAccess |
|
||||
| stmts.kt:42:9:42:24 | when ... | WhenExpr |
|
||||
| stmts.kt:42:13:42:13 | x | VarAccess |
|
||||
| stmts.kt:42:13:42:17 | ... > ... | GTExpr |
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
| test.kt:31:17:31:24 | source(...) | test.kt:31:15:31:25 | f(...) |
|
||||
| test.kt:32:17:32:24 | source(...) | test.kt:32:15:32:25 | g(...) |
|
||||
| test.kt:31:17:31:24 | source(...) | test.kt:31:10:31:25 | f(...) |
|
||||
| test.kt:32:17:32:24 | source(...) | test.kt:32:10:32:25 | g(...) |
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
| this.kt:40:13:40:30 | topLevelInnerFun(...) | topLevelInnerFun |
|
||||
| this.kt:41:13:41:27 | outerInnerFun(...) | outerInnerFun |
|
||||
| this.kt:42:13:42:35 | topLevelOuterInnerFun(...) | topLevelOuterInnerFun |
|
||||
| this.kt:43:18:43:27 | innerFun(...) | innerFun |
|
||||
| this.kt:44:18:44:35 | topLevelInnerFun(...) | topLevelInnerFun |
|
||||
| this.kt:45:18:45:32 | outerInnerFun(...) | outerInnerFun |
|
||||
| this.kt:46:18:46:40 | topLevelOuterInnerFun(...) | topLevelOuterInnerFun |
|
||||
| this.kt:43:13:43:27 | innerFun(...) | innerFun |
|
||||
| this.kt:44:13:44:35 | topLevelInnerFun(...) | topLevelInnerFun |
|
||||
| this.kt:45:13:45:32 | outerInnerFun(...) | outerInnerFun |
|
||||
| this.kt:46:13:46:40 | topLevelOuterInnerFun(...) | topLevelOuterInnerFun |
|
||||
| this.kt:64:1:65:1 | super(...) | Object |
|
||||
| this.kt:67:1:68:1 | super(...) | Object |
|
||||
|
||||
@@ -83,4 +83,4 @@ implicitVarargsArguments
|
||||
| test.kt:45:5:45:39 | new HasVarargConstructor(...) | 1 | test.kt:45:34:45:38 | array |
|
||||
| test.kt:55:13:55:43 | new X(...) | 0 | test.kt:55:42:55:42 | 1 |
|
||||
| test.kt:55:13:55:43 | new X(...) | 1 | test.kt:55:15:55:35 | tmp0_s |
|
||||
| test.kt:55:22:55:35 | toTypedArray(...) | 0 | test.kt:55:19:55:20 | sl |
|
||||
| test.kt:55:19:55:35 | toTypedArray(...) | 0 | test.kt:55:19:55:20 | sl |
|
||||
|
||||
@@ -11,3 +11,9 @@ data class F(val x: Int) {
|
||||
return other != null && other::class == this::class
|
||||
}
|
||||
}
|
||||
|
||||
data class G(val x: Int) {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
return other != null && other.javaClass == this.javaClass
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Likely Bugs/Arithmetic/WhitespaceContradictsPrecedence.ql
|
||||
@@ -0,0 +1,5 @@
|
||||
data class X(val prop: Int)
|
||||
|
||||
fun fn(x: X) {
|
||||
1 - x.prop + 2
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
name: codeql/java-tests
|
||||
groups: [java, test]
|
||||
dependencies:
|
||||
codeql/java-all: "*"
|
||||
codeql/java-queries: "*"
|
||||
codeql/java-all: ${workspace}
|
||||
codeql/java-queries: ${workspace}
|
||||
extractor: java
|
||||
tests: .
|
||||
|
||||
@@ -3,4 +3,4 @@ groups:
|
||||
- javascript
|
||||
- examples
|
||||
dependencies:
|
||||
codeql/javascript-all: "*"
|
||||
codeql/javascript-all: ${workspace}
|
||||
|
||||
@@ -1175,6 +1175,7 @@ private predicate parameterPropReadStep(
|
||||
invk = getAwaitOperand(succ)
|
||||
) and
|
||||
callInputStep(f, invk, arg, parm, cfg) and
|
||||
prop = pragma[only_bind_into](getARelevantProp(cfg)) and
|
||||
(
|
||||
read = parm.getAPropertyRead(prop)
|
||||
or
|
||||
@@ -1192,7 +1193,7 @@ private predicate reachesReturn(
|
||||
isRelevant(read, cfg) and
|
||||
returnExpr(f, read, _) and
|
||||
summary = PathSummary::level() and
|
||||
callInputStep(f, _, _, _, _) // check that a relevant result can exist.
|
||||
parameterPropReadStep(_, _, _, cfg, _, _, f, _) // check that a relevant result can exist.
|
||||
or
|
||||
exists(DataFlow::Node mid, PathSummary oldSummary, PathSummary newSummary |
|
||||
flowStep(read, cfg, mid, oldSummary) and
|
||||
@@ -1202,6 +1203,33 @@ private predicate reachesReturn(
|
||||
)
|
||||
}
|
||||
|
||||
// used in `getARelevantProp`, outlined for performance
|
||||
pragma[noinline]
|
||||
private string getARelevantStoreProp(DataFlow::Configuration cfg) {
|
||||
exists(DataFlow::Node previous | isRelevant(previous, cfg) |
|
||||
basicStoreStep(previous, _, result) or
|
||||
isAdditionalStoreStep(previous, _, result, cfg)
|
||||
)
|
||||
}
|
||||
|
||||
// used in `getARelevantProp`, outlined for performance
|
||||
pragma[noinline]
|
||||
private string getARelevantLoadProp(DataFlow::Configuration cfg) {
|
||||
exists(DataFlow::Node previous | isRelevant(previous, cfg) |
|
||||
basicLoadStep(previous, _, result) or
|
||||
isAdditionalLoadStep(previous, _, result, cfg)
|
||||
)
|
||||
}
|
||||
|
||||
/** Gets the name of a property that is both loaded and stored according to the exploratory analysis. */
|
||||
pragma[noinline]
|
||||
private string getARelevantProp(DataFlow::Configuration cfg) {
|
||||
result = getARelevantStoreProp(cfg) and
|
||||
result = getARelevantLoadProp(cfg)
|
||||
or
|
||||
result = getAPropertyUsedInLoadStore(cfg)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if the property `prop` of the object `pred` should be loaded into `succ`.
|
||||
*/
|
||||
@@ -1275,6 +1303,7 @@ private predicate reachableFromStoreBase(
|
||||
) {
|
||||
exists(TPathSummary s1, TPathSummary s2, DataFlow::Node rhs |
|
||||
storeStep(rhs, nd, startProp, cfg, s2) and
|
||||
startProp = getARelevantProp(cfg) and
|
||||
endProp = startProp and
|
||||
base = nd and
|
||||
exists(boolean hasCall, DataFlow::FlowLabel data |
|
||||
@@ -1300,6 +1329,7 @@ private predicate reachableFromStoreBase(
|
||||
exists(string midProp |
|
||||
reachableFromStoreBase(startProp, midProp, base, mid, cfg, oldSummary, onlyRelevantInCall) and
|
||||
isAdditionalLoadStoreStep(mid, nd, midProp, endProp, cfg) and
|
||||
endProp = getARelevantProp(cfg) and
|
||||
newSummary = PathSummary::level()
|
||||
)
|
||||
|
|
||||
|
||||
@@ -7,6 +7,6 @@ suites: codeql-suites
|
||||
extractor: javascript
|
||||
defaultSuiteFile: codeql-suites/javascript-code-scanning.qls
|
||||
dependencies:
|
||||
codeql/javascript-all: "*"
|
||||
codeql/suite-helpers: "*"
|
||||
codeql/typos: 0.0.1-dev
|
||||
codeql/javascript-all: ${workspace}
|
||||
codeql/suite-helpers: ${workspace}
|
||||
codeql/typos: ${workspace}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
name: codeql/javascript-tests
|
||||
groups: [javascript, test]
|
||||
dependencies:
|
||||
codeql/javascript-all: "*"
|
||||
codeql/javascript-queries: "*"
|
||||
codeql/javascript-all: ${workspace}
|
||||
codeql/javascript-queries: ${workspace}
|
||||
extractor: javascript
|
||||
tests: .
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/python-consistency-queries
|
||||
groups: [python, test, consistency-queries]
|
||||
dependencies:
|
||||
codeql/python-all: "*"
|
||||
codeql/python-all: ${workspace}
|
||||
extractor: python
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user