swiftlang/swift

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

Open

#47 293 ouverte le 27 avr. 2017

Voir sur GitHub
 (5 commentaires) (0 réactions) (0 assignés)Swift (10 719 forks)batch import
compilerdiagnostics qualitygood first issueimprovementlegacy driver

Métriques du dépôt

Stars
 (69 989 stars)
Métriques de merge PR
 (Merge moyen 8j 17h) (510 PRs mergées en 30 j)

Description

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.

Guide contributeur