build.gradle file, task using << notation, intellij warns: “Cannot infer argument type”

后端 未结 5 2271
眼角桃花
眼角桃花 2021-02-19 00:42

I\'m new to groovy and gradle and was wondering whether someone knew why my scriplet wasn\'t working (edit actually it does work but the warning still appears). This section is

相关标签:
5条回答
  • 2021-02-19 00:59

    Untill the IntelliJ bug is fixed, there is a workaround: use doFirst instead of <<.

    task hellofun() {
      doFirst {
        [silly:'billy'].each { k, v ->
          println "$k=$v"
        }
      }
    }
    

    Thanks for submitting the bug :)

    0 讨论(0)
  • 2021-02-19 01:00

    For the workaround, you should really call was was indicated by the << (doLast)

     task hellofun() {
       doLast {
         [silly:'billy'].each { k, v ->
           println "$k=$v"
         }
       }
     }
    
    0 讨论(0)
  • 2021-02-19 01:03

    In Intelij press Double shift (search all) enter "Assignment Issues" and change Assignment Issues: Incompatible type assignments inspection to "OFF"

    0 讨论(0)
  • 2021-02-19 01:13

    In a highly dynamically typed language such as groovy where names and symbols are resolved in arbitrary ways It would be quite difficult to determine the validity of any statement ahead of time without running the program. even running the program would theoretically not divulge all possible permutations of input that may change the runtime validity of a statement.

    I applaud intellij's attempt at this hard problem and can live with a few incorrect syntax warnings here and there.

    0 讨论(0)
  • 2021-02-19 01:14

    If you are willing to disable the Groovy > Assignment Issues > Incompatible type assignments inspection, the warning goes away.

    0 讨论(0)
提交回复
热议问题