/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . analysis . low . level . api . fir . sessions Ċ Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġorg . jetbrains . kotlin . analysis . api . impl . bare bone . annotations . Immutable Ċ import Ġorg . jetbrains . kotlin . analysis . low . level . api . fir . file . builder . Module File Cache Ċ import Ġorg . jetbrains . kotlin . analysis . low . level . api . fir . project . structure . LL F ir Built ins Module Data Ċ import Ġorg . jetbrains . kotlin . analysis . low . level . api . fir . project . structure . LL F ir Kt Module Based Module Data Ċ import Ġorg . jetbrains . kotlin . analysis . low . level . api . fir . project . structure . LL F ir Module Data Ċ import Ġorg . jetbrains . kotlin . analysis . project . structure . Kt Module Ċ import Ġorg . jetbrains . kotlin . analysis . project . structure . No Cache For Module Exception Ċ import Ġorg . jetbrains . kotlin . analysis . utils . errors . require Is Instance Ċ import Ġorg . jetbrains . kotlin . fir . F ir Module Data Ċ import Ġorg . jetbrains . kotlin . fir . F ir Session Ċ import Ġorg . jetbrains . kotlin . fir . F ir Session Provider Ċ Ċ @ Immutable Ċ class ĠLL F ir Session Provider Ġinternal Ġconstructor ( ĊĠĠĠ Ġval Ġproject : ĠProject , ĊĠĠĠ Ġinternal Ġval Ġroot Module Session : ĠLL F ir Res olvable Module Session , ĊĠĠĠ Ġprivate Ġval Ġmodule To Session : ĠMap < Kt Module , ĠLL F ir Res olvable Module Session > Ċ ) Ġ: ĠF ir Session Provider () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Session ( module Data : ĠF ir Module Data ): ĠLL F ir Session Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire Is Instance < LL F ir Module Data >( module Data ) ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( module Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLL F ir Built ins Module Data Ġ-> Ġmodule Data . session Ġas ĠLL F ir Built ins And Clone able Session ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLL F ir Kt Module Based Module Data Ġ-> Ġget Session ( module Data . kt Module ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Session ( module : ĠK t Module ): ĠLL F ir Res olvable Module Session Ġ= ĊĠĠĠĠĠĠĠ Ġmodule To Session . getValue ( module ) ĊĊĠĠĠ Ġval Ġall Sessions : ĠCollection < LL F ir Module Session > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmodule To Session . values Ċ } Ċ