Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup BackendInterface #9099

Merged
merged 98 commits into from
Jun 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
e7546cd
Remove LabelDef from BackendInterface
nicolasstucki Jun 2, 2020
bc1225b
Remove Modifiers from BackendInterface
nicolasstucki Jun 2, 2020
2368884
Remove ModuleDef from BackendInterface
nicolasstucki Jun 2, 2020
be3f4c3
Remove ApplyDynamic from BackendInterface
nicolasstucki Jun 2, 2020
615d670
Remove implicit conversions from BackendInterface
nicolasstucki Jun 2, 2020
05af70b
Rename BackendInterface extractors
nicolasstucki Jun 2, 2020
401146a
Use DottyBackendInterface directly
nicolasstucki Jun 3, 2020
ce74470
Remove BackendIntefaceDefinitions
nicolasstucki Jun 3, 2020
9ae52fd
Remove direct references to BackendInterface
nicolasstucki Jun 3, 2020
a0bec05
Remove BackendInterface
nicolasstucki Jun 3, 2020
d463644
Remove classTags
nicolasstucki Jun 3, 2020
e8edee9
Remove custom extractors
nicolasstucki Jun 3, 2020
3226aca
Remove more custom extractors
nicolasstucki Jun 3, 2020
9330317
Remove aliases
nicolasstucki Jun 3, 2020
cec354c
Remove more aliases
nicolasstucki Jun 3, 2020
b0a2713
Remove custom Val/Def extractors
nicolasstucki Jun 3, 2020
c8cbf36
Remove more custom extractors
nicolasstucki Jun 3, 2020
bc6af84
Remove some aliases
nicolasstucki Jun 3, 2020
cbad766
Remove constantHelper
nicolasstucki Jun 3, 2020
2fe7de6
Remove treeHelper
nicolasstucki Jun 3, 2020
e8c0609
Remove extractor abstractions
nicolasstucki Jun 3, 2020
d82ee36
Remove nameHelper
nicolasstucki Jun 3, 2020
2e8f5c5
Remove positionHelper and annotHelper
nicolasstucki Jun 3, 2020
f8dbf7c
Remove aliases
nicolasstucki Jun 3, 2020
62bb744
Remove custom ThrownException extractor
nicolasstucki Jun 3, 2020
cebc102
Remove some abstractions
nicolasstucki Jun 3, 2020
967cdea
Remove some abstractions
nicolasstucki Jun 3, 2020
5298923
Remove helper methods
nicolasstucki Jun 3, 2020
9291854
Remove methods form typeHelper
nicolasstucki Jun 3, 2020
f6b075d
Remove typeHelper
nicolasstucki Jun 3, 2020
d171865
Remove aliases
nicolasstucki Jun 3, 2020
b2f1188
Remove more aliases
nicolasstucki Jun 3, 2020
dd16adb
Remove some methods from symbolHelper
nicolasstucki Jun 3, 2020
4601c6a
Remove methods from DottyBackendInterface
nicolasstucki Jun 3, 2020
c4ddb11
Remove flag aliases
nicolasstucki Jun 3, 2020
919d768
Remove methods from symbolHelper
nicolasstucki Jun 3, 2020
c096588
Remove methods fro symbolHelper
nicolasstucki Jun 3, 2020
e4d58ff
Inline some methods
nicolasstucki Jun 3, 2020
d10d1d9
Remove SymbolHelper abstraction
nicolasstucki Jun 3, 2020
2b78cb3
Remove some methods
nicolasstucki Jun 3, 2020
48dd85e
Remove custom Template and Return extractor
nicolasstucki Jun 3, 2020
c16f6e3
Remove custom Closure extractor
nicolasstucki Jun 3, 2020
a548357
Inline methods
nicolasstucki Jun 3, 2020
2e1db2e
Inline methods
nicolasstucki Jun 3, 2020
33f4c12
Remove implicit conversion
nicolasstucki Jun 3, 2020
2c83a61
Remove error/warining aliases
nicolasstucki Jun 3, 2020
ea3d282
Remove CompilationUnit type alias
nicolasstucki Jun 3, 2020
5487985
Remove type aliases
nicolasstucki Jun 3, 2020
5ec9524
Remove tpd type aliases
nicolasstucki Jun 3, 2020
62d8917
Remove Flags type alias
nicolasstucki Jun 3, 2020
89d1e67
Inline method
nicolasstucki Jun 3, 2020
14f0515
Inline some methods
nicolasstucki Jun 3, 2020
38defd1
Remove condition from isClass
nicolasstucki Jun 3, 2020
1610aea
Fix inlining of isInterface
nicolasstucki Jun 3, 2020
ef05863
Inline isClass
nicolasstucki Jun 3, 2020
7334e94
Inline emitAnnotations
nicolasstucki Jun 5, 2020
91de509
Inline some methods
nicolasstucki Jun 5, 2020
1a7dc1e
Move typeToTypeKind
nicolasstucki Jun 5, 2020
1e4439a
Move methods
nicolasstucki Jun 5, 2020
c0e01e9
Remove DottyBackendInterface.sourcePos
nicolasstucki Jun 5, 2020
60b220e
Remove DottyBackendInterface Symbol and type
nicolasstucki Jun 5, 2020
3d7dc45
Inline method
nicolasstucki Jun 5, 2020
5795716
Create symExtensions
nicolasstucki Jun 5, 2020
266a7c5
Move method
nicolasstucki Jun 5, 2020
504adde
Make method an extension
nicolasstucki Jun 5, 2020
3a0dbda
Revert "Remove DottyBackendInterface Symbol and type"
nicolasstucki Jun 5, 2020
1c4af73
Revert "Remove DottyBackendInterface.sourcePos"
nicolasstucki Jun 5, 2020
c1c8e45
Revert "Revert "Remove DottyBackendInterface Symbol and type""
nicolasstucki Jun 5, 2020
1b196c9
Move methods
nicolasstucki Jun 5, 2020
043e390
Move code
nicolasstucki Jun 5, 2020
c49972c
Move perRunCaches
nicolasstucki Jun 5, 2020
e3d1d96
Move primitives
nicolasstucki Jun 5, 2020
0cabe6f
Move fields
nicolasstucki Jun 5, 2020
a03fa03
Inline sourcePos
nicolasstucki Jun 5, 2020
405104d
Move ExcludedForwarderFlags to Flags
nicolasstucki Jun 5, 2020
885035d
Move fields
nicolasstucki Jun 5, 2020
b868291
Move field
nicolasstucki Jun 5, 2020
ac0a0c1
Move abort
nicolasstucki Jun 5, 2020
95c247d
Remove Throw custom extractor
nicolasstucki Jun 5, 2020
b5168aa
Do not capture Context in symExtension
nicolasstucki Jun 5, 2020
0485885
Add explicit Context
nicolasstucki Jun 5, 2020
b6cdabe
Rename extractors
nicolasstucki Jun 5, 2020
2caf4bf
Rename desugarIdentBI
nicolasstucki Jun 5, 2020
1513eb6
Add isScalaStatic to SymUtils
nicolasstucki Jun 8, 2020
9a3b80e
Remove comment and add TODO
nicolasstucki Jun 8, 2020
c46ab15
Factor out `javaSimpleName`, `javaClassName` and `javaBinaryName`
nicolasstucki Jun 8, 2020
a24625f
Import all flags in the backend
nicolasstucki Jun 8, 2020
ea5fb1f
Remove redundant extraction
nicolasstucki Jun 8, 2020
8d9fa9c
Avoid list allocation
nicolasstucki Jun 8, 2020
d67e1f4
Add TODOs
nicolasstucki Jun 8, 2020
51ee1da
Revert "Avoid list allocation"
nicolasstucki Jun 8, 2020
20b404d
Use isBottom class
nicolasstucki Jun 9, 2020
33b7aa8
Remove unnecessary casts
nicolasstucki Jun 9, 2020
7f23338
Update comment
nicolasstucki Jun 9, 2020
5385a82
Use denot name directly
nicolasstucki Jun 9, 2020
3e36134
Factor out compilingArray
nicolasstucki Jun 9, 2020
8213993
Remove ExistentialType logic
nicolasstucki Jun 9, 2020
bf7b5b3
Add TODO
nicolasstucki Jun 9, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions compiler/src/dotty/tools/backend/jvm/BCodeAsmCommon.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@ package dotty.tools
package backend
package jvm

import dotty.tools.dotc.core.Flags._
import dotty.tools.dotc.core.Symbols._

/**
* This trait contains code shared between GenBCode and GenASM that depends on types defined in
* the compiler cake (Global).
*/
final class BCodeAsmCommon[I <: BackendInterface](val interface: I) {
final class BCodeAsmCommon[I <: DottyBackendInterface](val interface: I) {
import interface._
import DottyBackendInterface.symExtensions

/**
* True if `classSym` is an anonymous class or a local class. I.e., false if `classSym` is a
Expand Down Expand Up @@ -53,7 +57,7 @@ final class BCodeAsmCommon[I <: BackendInterface](val interface: I) {
assert(classSym.isClass, classSym)
def enclosingMethod(sym: Symbol): Option[Symbol] = {
if (sym.isClass || sym == NoSymbol) None
else if (sym.isMethod) Some(sym)
else if (sym.is(Method)) Some(sym)
else enclosingMethod(sym.originalOwner.originalLexicallyEnclosingClass)
}
enclosingMethod(classSym.originalOwner.originalLexicallyEnclosingClass)
Expand Down Expand Up @@ -85,10 +89,10 @@ final class BCodeAsmCommon[I <: BackendInterface](val interface: I) {
def enclosingMethodAttribute(classSym: Symbol, classDesc: Symbol => String, methodDesc: Symbol => String): Option[EnclosingMethodEntry] = {
if (isAnonymousOrLocalClass(classSym)) {
val methodOpt = enclosingMethodForEnclosingMethodAttribute(classSym)
debuglog(s"enclosing method for $classSym is $methodOpt (in ${methodOpt.map(_.enclClass)})")
ctx.debuglog(s"enclosing method for $classSym is $methodOpt (in ${methodOpt.map(_.enclosingClass)})")
Some(EnclosingMethodEntry(
classDesc(enclosingClassForEnclosingMethodAttribute(classSym)),
methodOpt.map(_.javaSimpleName.toString).orNull,
methodOpt.map(_.javaSimpleName).orNull,
methodOpt.map(methodDesc).orNull))
} else {
None
Expand Down
Loading