swiftlang/swift

[SR-4716] Better diagnostics for multifile executable without a main.swift file

Open

#47,293 建立於 2017年4月27日

在 GitHub 查看
 (5 留言) (0 反應) (0 負責人)Swift (69,989 star) (10,719 fork)batch import
compilerdiagnostics qualitygood first issueimprovementlegacy driver

描述

Previous ID SR-4716
Radar None
Original Reporter @huonw
Type Improvement
Status In Progress
Resolution
Votes 0
Component/s Compiler
Labels Improvement, DiagnosticsQoI, Driver, StarterBug
Assignee None
Priority Medium

md5: 107a386ff1ef4614f95e66bc776c43f4

Issue Description:

$ touch file1.swift file2.swift
$ swiftc file1.swift file2.swift
Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)

The problem here is neither file is called main.swift, so the top-level-code `main` function doesn't get emitted. The compiler should check the file names and emit an error rather than going all the way through compilation to hit the link error.

貢獻者指南

[SR-4716] Better diagnostics for multifile executable without a main.swift file · swiftlang/swift#47293 | Good First Issue